Ruby异常还是错误?

Ruby异常还是错误?,ruby,exception,class,hierarchy,Ruby,Exception,Class,Hierarchy,我注意到在Ruby异常层次结构中,有ArgumentError之类的“错误”和SignalException之类的“异常”。是否有特定的命名例外的做法?提前感谢您,ell。看看,SignalException是唯一被命名为*Exception;其他一切都是XXXError(除了SystemExit和fatal)。如果有什么不同的话,我们的做法是将异常命名为foorerror。我很难找到SignalException没有命名为SignalError的具体原因。对于由应用程序(例如)引起的任何问题,

我注意到在Ruby异常层次结构中,有ArgumentError之类的“错误”和SignalException之类的“异常”。是否有特定的命名例外的做法?提前感谢您,ell。

看看,
SignalException
是唯一被命名为
*Exception
;其他一切都是
XXXError
(除了
SystemExit
fatal
)。如果有什么不同的话,我们的做法是将异常命名为
foorerror
。我很难找到
SignalException
没有命名为
SignalError

的具体原因。对于由应用程序(例如)引起的任何问题,约定是
模块::#{Type}Error
。Ruby中的异常处理与Java中的分层方式不同,因为异常模型在语言级别上是不同的


从我所看到的情况来看,C/FFI/JNA扩展遵循的约定稍微宽松一些。

很好地描述了异常和错误之间的区别,尽管是针对ruby以外的语言。谢谢,这让事情变得清晰了一点@Andrewgrim我认为在Ruby的例子中,引用是误导性的。Ruby的错误/异常层次结构的设计使得表示需要处理的情况的类极有可能是StandardError或RuntimeError的子类,它们的名称中应该有
error
。我支持这一点。另一个问题,既然我们应该拯救的一切都是从
standarderor
继承而来的,那么使用
rescue standarderor=>error
而不是
rescue standarderor=>exception
是否有意义?我一直使用
exception
,但这个答案让我现在停顿了一下。是的,我认为称之为
error
是有意义的。