Ruby “替代方案”;救援例外情况“;
有时我会遇到一些意想不到的错误,例如超时错误、503错误等。有些错误我甚至不知道我可能会收到。我不能通过这样做来解释所有这些问题:Ruby “替代方案”;救援例外情况“;,ruby,exception,rescue,Ruby,Exception,Rescue,有时我会遇到一些意想不到的错误,例如超时错误、503错误等。有些错误我甚至不知道我可能会收到。我不能通过这样做来解释所有这些问题: rescue Timeout::Error => e 拯救异常也是一个糟糕的主意 我可以使用什么替代方案?当出现错误时,我希望我的代码能够拯救它们;如果没有错误,我需要避免它。我希望能够终止我的脚本,但不跳过语法错误等。您可以为StandardError解救,或者简单地解救,它们是相同的: rescue StandardError => e # or
rescue Timeout::Error => e
拯救异常也是一个糟糕的主意
我可以使用什么替代方案?当出现错误时,我希望我的代码能够拯救它们;如果没有错误,我需要避免它。我希望能够终止我的脚本,但不跳过语法错误等。您可以为
StandardError
解救,或者简单地解救,它们是相同的:
rescue StandardError => e
# or
rescue => e
您可以在下表中看到哪些异常是从StandardError
中解救出来的-请注意,它们是Exception
中的一个子集,并且应该是可以捕获的错误
当然,您可以将定义异常的gems放在错误的位置,但这不应该发生在开发良好的gems中
(来源:)
我个人只喜欢援救我知道如何处理的异常,除非是在日志/回溯系统中添加异常,以便以后查询错误。如果是这种情况,我通常会援救
标准错误
您可以援救标准错误
,或者简单援救,它们是相同的:
rescue StandardError => e
# or
rescue => e
您可以在下表中看到哪些异常是从StandardError
中解救出来的-请注意,它们是Exception
中的一个子集,并且应该是可以捕获的错误
当然,您可以将定义异常的gems放在错误的位置,但这不应该发生在开发良好的gems中
(来源:)
我个人只喜欢援救我知道如何处理的异常,除非是在日志/回溯系统中添加异常,以便以后查询错误。如果是这样的话,我通常会拯救
standarderor
啊,standarderor
。这是有道理的。感谢这张图表,它有助于查看层次结构并准确地知道我在拯救什么。“我个人只喜欢拯救我知道如何处理的异常……”我的一位导师曾经说过“永远不要试图捕捉你不知道如何处理的异常。”啊,StandardError
。这是有道理的。感谢这张图表,它有助于查看层次结构,并准确地知道我在拯救什么。“我个人只喜欢拯救我知道如何处理的异常……”我的一位导师曾经说过“永远不要试图捕捉你不知道如何处理的异常。”