Ruby异常还是错误?

Ell*_*Ell 16 ruby exception class hierarchy

我注意到在Ruby异常层次结构中,存在诸如ArgumentError之类的"错误",并且存在诸如SignalException之类的"异常".是否有某种命名例外的做法?我们提前谢谢了.

Mar*_*off 10

查看Ruby异常列表,SignalException是唯一被命名的异常*Exception ; 其他一切都是XXXError(除了SystemExitfatal).如果有的话,那就是命名你的例外FooError.我找不到任何具体原因,因为我SignalException没有命名SignalError.

  • 我赞成。另一个问题,因为我们_应该_拯救的一切都是从`StandardError`继承的,使用`rescue StandardError => error`代替`rescue StandardError => exception`是否有意义?我一直使用“异常”,但这个答案现在让我停下来。 (2认同)

Den*_*ham 5

该约定适用Module::#{Type}Error于由您的应用程序引起的任何事情(例如http://weblog.jamisbuck.org/2007/3/7/raising-the-right-exception).Ruby中的异常处理不像Java中那样分层,因为异常模型在语言级别上是不同的.

从我所看到的,对于C/FFI/JNA扩展,这些约定更加松散.