我注意到在Ruby的异常层次结构中,有"错误(errors)"例如ArgumentError和"异常(exceptions)"例如SignalException。是否有一定的惯例来命名异常?谢谢您提前的回答,ell。
查看Ruby异常列表,我们可以发现只有SignalException
这个异常以*Exception
的形式命名;其他所有异常都是以XXXError
的形式命名(除了SystemExit
和fatal
)。如果需要,惯例上应该把自定义的异常命名为FooError
。但我找不到SignalException
没有被命名为SignalError
的具体原因。
rescue StandardError => error
而不是rescue StandardError => exception
是否有意义?我一直使用exception
,但现在这个答案让我停下来思考了。 - Joshua PinterModule::#{Type}Error
,用于表示应用程序引起的任何问题(例如:http://weblog.jamisbuck.org/2007/3/7/raising-the-right-exception)。Ruby中的异常处理与Java不同,因为语言层面上的异常模型也不同。从我所看到的情况来看,对于C/FFI/JNA扩展,这些约定会更加宽松。