use*_*833 7 api error-handling exception-handling ruby-on-rails ruby-on-rails-3.1
我正在使用ruby包装器(createsend-ruby)与CampaignMonitor的API进行交互, 我只是想知道你对错误/异常处理的推荐.我正在考虑如下使用begin/rescue/end,但我只是想知道是否有更好的技术来处理这类事情(当你处理第三方API时).
begin
list_id = CreateSend::List.create client_id, title, unsubscribe_page, confirmed_opt_in, confirmation_success_page
rescue Exception => e
logger.error "[error] CampaignMonitor error: #{e}"
return false
end
Run Code Online (Sandbox Code Playgroud)
例如,您是否会尝试捕获特定的异常并单独处理它们?
rescue CreateSend::BadRequest => e
Run Code Online (Sandbox Code Playgroud)
或者这只是个人偏好和/或应用程序要求的问题?
感谢您的时间!
我通常从一个例外开始抓住它们并从那里开始.如果有一个特定的错误经常出现或者需要以不同的方式处理,那么只需在另一个上面添加另一个救援块,以便在那里捕获异常.你这样做:)
rescue Exception尽可能避免,简单rescue应该做的伎俩.
只是为了澄清,您可以获得任意数量的救援以及确保:
begin
do_something
rescue CS::BadRequest => e
logger.error "..."
rescue CS::TimeoutError => e
do_something_that_retries
rescue => e
logger.error "..."
ensure
send_email_to_admin
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3741 次 |
| 最近记录: |