【发布时间】:2015-11-03 10:25:31
【问题描述】:
Ruby 提供了两种以编程方式引发异常的可能性:raise 和 fail,它们都是 Kernel 方法。根据文件,它们是绝对等价的。
出于习惯,我目前只使用raise。现在我找到了一些建议(例如here),使用raise 捕获异常,使用fail 处理不应该处理的严重错误。
但这真的有意义吗?当您编写一个类或模块并导致内部深处出现问题时,您通过fail 发出信号,您正在审查代码的编程同事可能会很高兴地理解您的意图,但使用的人em> 我的代码很可能不会查看我的代码并且无法知道异常是由raise 还是由fail 引起的。因此,我对raise或fail的谨慎使用对他的决定没有任何影响,无论她是否应该处理。
有人能看出我的论点有缺陷吗?还是有其他标准,我可能想使用fail 而不是raise?
【问题讨论】:
-
我认为这个问题可以被视为题外话,因为它不包含特定问题,所以我认为它更适合例如Programmers
-
@m.cekiera 在引用其他网站时,指出cross-posting is frowned upon 通常会有所帮助
-
@m.cekiera:实际上,问题源于一个特定的问题(我正在编写一个库并想引发异常,当传递给方法的参数超出范围时),但我认为提供此信息无助于回答问题。不过感谢您的评论。
标签: ruby exception coding-style conventions