我正在通过Yelp API通过gem 'yelp'工作。一切正常,但是当我们输入一个不是由yelp提供的位置时,它会抛出异常。
Yelp::Error::UnavailableForLocation我试过开始/结束,提高和拯救,但没有工作。有人能看出我做错了什么吗。这是我试过的
begin
client = Yelp::client
raise yelp_places_burst = client.search('lahore , pakistan')
end
rescue Exception => e
puts e.message此外,我希望将错误发送到js文件(响应ajax)。
发布于 2015-12-11 09:13:37
你对一个例外是如何获救的感到有点困惑。在Ruby中拯救异常的方法是
begin
# execution
rescue ErrorClass
# do something
end因此,您的代码应该是
begin
client = Yelp::client
yelp_places_burst = client.search('lahore , pakistan')
rescue Yelp::Error::UnavailableForLocation => e
puts e.message
end还请注意,我用特定的异常类替换了Exception。事实上,不建议拯救Exception,因为它将隐藏其他一些非常特殊的事件。
发布于 2015-12-11 09:13:18
如果您查看https://github.com/Yelp/yelp-ruby/blob/develop/lib/yelp/error.rb,您可以看到Yelp::Error::UnavailableForLocation是从StandardError扩展的Base中扩展的。因此,您需要捕获StandardError,而不是例外。
您可以在这里得到一些额外的解释:https://robots.thoughtbot.com/rescue-standarderror-not-exception,这意味着您可以使用默认情况下捕获StandardError的援救=> e。
https://stackoverflow.com/questions/34219610
复制相似问题