当你没有在ruby中指定exception类时,你会遇到哪些exception?

当您未指定如下的exception类时,您会捕获哪些exception:

begin # do something rescue puts "Exception!" end 

根据我的Programming Ruby 1.9的副本,

不带参数的rescue子句被视为具有StandardError参数。

这是来自ruby-doc.org的文档:

默认情况下, rescue仅拦截StandardError及其后代,但您可以指定要处理的exception作为参数。 (当rescue处于语句修饰符位置时,此技术不起作用。)

如果您需要引用它,那么Why Not Wiki 可以使用Exception层次结构 。

作为快速参考,不是从StandardError派生的Exception类是:

  • fatal
  • NoMemoryError
  • ScriptError
  • SignalException
  • SystemExit
  • SystemStackError