替代“救援exception”
我偶尔会遇到一些意外错误,例如超时错误,503错误等。有些错误我甚至不知道我可能收到的错误。 做以下事情我无法解释所有这些:
rescue Timeout::Error => e
拯救Exception
也是一个可怕的想法。
我可以使用哪种替代方案? 当出现错误时,我希望我的代码能够拯救所有这些代码; 如果没有错误,我需要避免它。 我希望能够杀死我的脚本但不会跳过语法错误等。
你可以拯救StandardError
,或简单地救援,它们是相同的:
rescue StandardError => e # or rescue => e
您可以在下表中看到从StandardError
中获取了哪些exception – 请注意,它们是Exception
的子集,并且应该是可以捕获的错误。
当然,你可以拥有在错误的地方定义exception的gem,但这不应该在发展良好的gem中发生。
ruby例外http://sofzh.miximages.com/ruby/exception.jpg
我个人喜欢拯救我知道如何处理的exception,除非是在日志/回溯系统中添加以便稍后查阅错误。 如果是这种情况,我通常会拯救StandardError
- 如何处理不知道Ruby中的库方法可以引发什么exception?
- Devise中的InvalidAuthenticityToken :: SessionsController#destroy(已经注销后退出)
- 无法解救YAML.loadexception
- Hoptoad诉Exceptional诉exception_notification诉exception_logger案
- 如何在ruby回溯中获取源和变量值?
- 当你没有在ruby中指定exception类时,你会遇到哪些exception?
- 为什么我在Rails 4中获得连接表的未知主键例外?
- 什么可能导致这个铁路ioerror封闭流?
- Ruby如何知道要救援什么?