有时我会遇到一些意想不到的错误,比如超时错误、503个错误等等。有些错误我甚至不知道我可能会收到我不能用这样的方式来解释所有这些问题:
rescue Timeout::Error => e
营救
Exception
也是个糟糕的主意。我可以用什么替代品当出现错误时,我希望我的代码能够拯救所有的错误;如果没有错误,我需要避免它。我希望能够杀死我的脚本,但不能跳过语法错误等。
最佳答案
您可以为StandardError
进行救援,也可以简单地进行救援,这是相同的:
rescue StandardError => e
# or
rescue => e
您可以在下表中看到从
StandardError
中解救的异常-请注意,它们是Exception
中的一个子集,并且应该是可以捕获的错误。当然,您可以让gems在错误的地方定义异常,但这不应该发生在开发良好的gems中。
(来源:rubylearning.com)
我个人只喜欢解救我知道如何处理的异常,除非是在以后要添加日志/回溯系统来查询错误如果是这样的话,我通常会拯救
StandardError