Ruby提供了两种以编程方式引发异常的可能性:raise
和fail
,两者都是Kernel
个方法.根据文件,它们是绝对等同的.
出于习惯,到目前为止我只使用了raise
.现在我发现了几个建议(例如here),对于要捕获的异常使用raise
,对于不打算处理的严重错误使用fail
.
但这真的有意义吗?当你在编写一个类或模块,并导致一个深层次的问题时,你的编程同事们可能会很高兴地理解你的意图,但是using我的代码的人很可能不会看我的代码,也无法知道异常是由raise
还是由fail
引起的.因此,我谨慎地使用raise
或fail
不会对他的决定产生任何影响,无论她是否应该处理它.
有人能看出我论点中的缺陷吗?或者还有其他标准,我可能想用fail
而不是raise
?