我一直在更新一个现有库,以便通过使用该库的人引发异常来帮助改善调试。
起初,我想为每个类定义特定的异常,但是事实证明,这些异常大多只是现有运行时异常的扩展(例如FooNegativeIntArgumentException extends IllegalArgumentException
,FooNullBarException extends NullPointerException
),具有特定的消息。
定义新的异常和使用现有的异常有什么权衡之处?是否有任何惯例或最佳做法?
此外,考虑到向后兼容性的需要,大多数(如果不是全部)这些异常都是运行时异常。