首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yelp异常处理Rails

Yelp异常处理Rails
EN

Stack Overflow用户
提问于 2015-12-11 09:02:13
回答 2查看 70关注 0票数 1

我正在通过Yelp API通过gem 'yelp'工作。一切正常,但是当我们输入一个不是由yelp提供的位置时,它会抛出异常。

代码语言:javascript
复制
Yelp::Error::UnavailableForLocation

我试过开始/结束,提高和拯救,但没有工作。有人能看出我做错了什么吗。这是我试过的

代码语言:javascript
复制
begin
 client = Yelp::client
 raise yelp_places_burst = client.search('lahore , pakistan')
end
rescue Exception => e
puts e.message

此外,我希望将错误发送到js文件(响应ajax)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-11 09:13:37

你对一个例外是如何获救的感到有点困惑。在Ruby中拯救异常的方法是

代码语言:javascript
复制
begin
 # execution
rescue ErrorClass
 # do something
end

因此,您的代码应该是

代码语言:javascript
复制
begin
  client = Yelp::client
  yelp_places_burst = client.search('lahore , pakistan')
rescue Yelp::Error::UnavailableForLocation => e
  puts e.message
end

还请注意,我用特定的异常类替换了Exception。事实上,不建议拯救Exception,因为它将隐藏其他一些非常特殊的事件。

票数 1
EN

Stack Overflow用户

发布于 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。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34219610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档