Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby “替代方案”;救援例外情况“;_Ruby_Exception_Rescue - Fatal编程技术网

Ruby “替代方案”;救援例外情况“;

Ruby “替代方案”;救援例外情况“;,ruby,exception,rescue,Ruby,Exception,Rescue,有时我会遇到一些意想不到的错误,例如超时错误、503错误等。有些错误我甚至不知道我可能会收到。我不能通过这样做来解释所有这些问题: rescue Timeout::Error => e 拯救异常也是一个糟糕的主意 我可以使用什么替代方案?当出现错误时,我希望我的代码能够拯救它们;如果没有错误,我需要避免它。我希望能够终止我的脚本,但不跳过语法错误等。您可以为StandardError解救,或者简单地解救,它们是相同的: rescue StandardError => e # or

有时我会遇到一些意想不到的错误,例如超时错误、503错误等。有些错误我甚至不知道我可能会收到。我不能通过这样做来解释所有这些问题:

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
。这是有道理的。感谢这张图表,它有助于查看层次结构,并准确地知道我在拯救什么。“我个人只喜欢拯救我知道如何处理的异常……”我的一位导师曾经说过“永远不要试图捕捉你不知道如何处理的异常。”