2013-02-09 78 views

回答

2

当您不明确指定类型时,缺省行为rescue StandardError的原因是您通常不希望在程序中处理非标准错误,至少在不明确提及它们的情况下不会。一些典型的非标准错误例外是;

LoadError 
NotImplementedError 
SyntaxError 

通常情况下,你想了解你的代码中缺少在你的程序中,不实现的方法和语法错误的脚本文件,不小心处理它们/在你的异常代码忽略它们。

您还可以使用替代语法

rescue Exception => e 
+0

似乎Ruby的例外已经这样设计,没有什么太多技术性的。好吧,无论如何,'+ 1'也是你。 :) – 2013-02-09 10:00:11

+2

Downvoter:投票没有帮助,没有留下评论,为什么也没有帮助。 – 2013-02-09 10:08:45

2

我从here引述如下:

上面的图表显示,大多数的子类扩展已知 作为StandardError的一个类。这些是典型的Ruby 程序试图处理的“正常”异常。其他例外情况表示较低级别, 更严重或可回收条件较少,而普通Ruby程序 通常不会尝试处理它们。

希望能回答你的问题。

+0

有(不推荐)抓任何例外!我赞同你。答案太过于实用,因为我的期望有点不同,技术性更强。 :)我仍然对此感到满意。 '+ 1'给你。 – 2013-02-09 09:58:40