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