我一直在更新现有的库以抛出异常,以帮助改善使用该库的人员的调试.
起初,我认为我会定义特定于每个类的异常,但事实证明,大多数异常只是现有运行时异常(例如FooNegativeIntArgumentException extends IllegalArgumentException,FooNullBarException extends NullPointerException)与特定消息的扩展.
定义新例外与使用现有例外的权衡有何不同?有没有任何惯例/最佳做法?
此外,鉴于需要向后兼容性,这些异常中的大多数(如果不是全部)都是运行时异常.