我有时会遇到一些意外错误,例如超时错误、503 错误等。我什至不知道我可能会收到一些错误。我不能通过执行以下操作来解释所有这些:
rescue Timeout::Error => e
营救也是一个糟糕的主意Exception
。
我可以使用什么替代方案?我希望我的代码在出现错误时拯救所有这些;如果没有错误,我需要避免它。我希望能够杀死我的脚本但不跳过语法错误等。
你可以救援StandardError
,或者简单地救援,它们是一样的:
rescue StandardError => e
# or
rescue => e
您可以在下表中看到从哪些异常中获救StandardError
- 请注意,它们是 的子集Exception
,并且理论上应该是可以捕获的错误。
当然,您可以在错误的位置使用定义异常的 gem,但这不应该发生在开发良好的 gem 中。
(来源:rubylearning.com)
我个人喜欢只拯救我知道如何处理的异常,除非它是添加到日志/回溯系统以便稍后查阅错误。如果是这种情况,我通常会抢救StandardError