1

我有时会遇到一些意外错误,例如超时错误、503 错误等。我什至不知道我可能会收到一些错误。我不能通过执行以下操作来解释所有这些:

rescue Timeout::Error => e

营救也是一个糟糕的主意Exception

我可以使用什么替代方案?我希望我的代码在出现错误时拯救所有这些;如果没有错误,我需要避免它。我希望能够杀死我的脚本但不跳过语法错误等。

4

1 回答 1

6

你可以救援StandardError,或者简单地救援,它们是一样的:

rescue StandardError => e
# or
rescue => e

您可以在下表中看到从哪些异常中获救StandardError- 请注意,它们是 的子集Exception,并且理论上应该是可以捕获的错误。

当然,您可以在错误的位置使用定义异常的 gem,但这不应该发生在开发良好的 gem 中。

红宝石异常
(来源:rubylearning.com

我个人喜欢只拯救我知道如何处理的异常,除非它是添加到日志/回溯系统以便稍后查阅错误。如果是这种情况,我通常会抢救StandardError

于 2013-09-03T16:13:48.520 回答