我注意到许多Java异常类仅在类的名称上有所不同,并且不添加任何新功能.例如,大多数例外似乎都会覆盖Exception() or Exception(String message).这违背了继承的原则,即: - 继承以添加新功能.
创建新的Exception类有什么好的理由?
Cla*_*diu 24
例外是一种特殊情况.在他们的例子中,继承不是添加新功能,而是添加新的错误类.这可以让您的代码捕获特定类型的错误,同时忽略其他错误.
假设您正在编写一个大型项目.您有一个数据组件,并且您有一个显示组件.它们都可以以各种方式失败,并且您希望为这些失败抛出异常.但是,Display组件并不关心数据组件引起的异常,反之亦然.如果所有类都抛出Exception,那么就无法找出异常的来源.但是,如果Exception使用DataException和子类GraphicsException,即使它们不添加新功能,您现在可以抛出并捕获这些特定类型的异常,即图形组件可以捕获GraphicsException而不必处理数据异常.
我建议阅读《Effective Java》第 9 章的全部或大部分内容。特别是第 60 条:“支持使用标准异常”和第 61 条:“抛出适合抽象的异常”。
编辑 1:或第一版中的第 42 和 43 项。
| 归档时间: |
|
| 查看次数: |
2216 次 |
| 最近记录: |