替代"救援异常"

Lui*_*igi 1 ruby exception rescue

我偶尔会遇到一些意外错误,例如超时错误,503错误等.有些错误我甚至不知道我可能收到的错误.做以下事情我无法解释所有这些:

rescue Timeout::Error => e
Run Code Online (Sandbox Code Playgroud)

救援也是一个可怕的想法Exception.

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

fot*_*nus 6

你可以救援StandardError,或者只是救援,这是相同的:

rescue StandardError => e
# or
rescue => e
Run Code Online (Sandbox Code Playgroud)

您可以在下表中看到从中拯救了哪些例外StandardError- 请注意它们是一个子集Exception,并且应该是可以捕获的错误.

当然,你可以拥有在错误的地方定义异常的宝石,但这不应该在发展良好的宝石中发生.

ruby例外http://rubylearning.com/images/exception.jpg

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