繁体   English   中英

我应该如何处理长异常处理代码

[英]How should I handle long exception handling code

我正在尝试调用外部API。 我处理了四个或更多通话异常。

如果我打多个电话,代码会很快增加。 我是否应该为每个处理异常并返回数据的此类调用编写包装器?

这是此类代码的示例(这不是我的)。 调用user_search之后是异常处理。

注意:我没有使用Rails

begin
@twitter = Twitter.user_search(name)
rescue Twitter::Unauthorized
  puts "Not authorized. Please check the Twitter credentials at the top of the script."
  break

rescue Twitter::BadRequest => e
  puts "Hit rate limit. Continuing scraping at #{e.ratelimit_reset}"
  sleep e.retry_after
  retry

rescue Exception => e
  puts "Something else went wrong:"
  puts e.message
end

我更改了问题的标题。 我认为问题更多是如何处理长时间的异常处理代码。 在示例代码中,假设我对twitter API进行了多次调用,然后进行了异常处理,似乎异常处理代码干扰了实际工作的代码读取。

围绕一段代码编写您的异常处理程序,这样,如果该块的第一行失败,您将很乐意跳过所有代码,直到该块的最后一行。

如果异常使处理程序出现的整个方法的其余部分无效,请考虑让异常冒泡到下一层。 不一定所有方法都必须使用您的方法。

我经常发现自己围绕一行代码编写异常处理程序(具有合适的恢复代码),但这不是规则。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM