gpt4 book ai didi

ruby - rescue_from 考拉异常

转载 作者:数据小太阳 更新时间:2023-10-29 07:46:59 26 4
gpt4 key购买 nike

也许初学者的问题:

我正在尝试使用 Koala 从 facebook 检查我的用户权限。在某些情况下,我会被抛出一个错误。所以我只想捕获它并重定向到重新验证。

  def check_facebook_permissions
if token = current_user.try(:authentications).find_by_provider('facebook').try(:token)
graph = Koala::Facebook::API.new(token)
permissions = graph.get_connections('me','permissions')
session[:facebook] = {}
session[:facebook][:ask_publish_actions] = true if permissions[0]['publish_actions'] != true && permissions[0]['publish_stream'] != true
end
rescue_from Koala::Facebook::APIError
# Do something funky here
end

我认为这很简单,但我从来没有成功过。相反,我得到:

Koala::Facebook::APIError (OAuthException: Error validating access token: Session has expired at unix time 1324026000. The current unix time is 1324352685.):

我在这里错过了什么?

最佳答案

rescue_from 不像 rescue 那样是 Ruby 的句法结构 - 它是一个普通函数,你需要一个 block 来配合它。在你的代码中,没有给出代码, rescue_from 被执行并有效地跳过 - 它之后的内容与它之前引发的任何异常无关(就像你放置任何其他函数一样,如 puts,而不是 rescue_from)。

查看 rescue_from 使用 here 的示例.

要使此代码正常工作,您需要 Vanilla Ruby rescue:

rescue Koala::Facebook::APIError => e

关于ruby - rescue_from 考拉异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8570553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com