加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在外部API中使用已检查的异常是一个好主意吗?

发布时间:2020-12-15 08:34:48 所属栏目:Java 来源:网络整理
导读:在API中查看已检查的预测并不罕见,其中一个最着名的示例是 Closeable.close() 中的IOException.并且经常处理此异常确实让我很烦.更令人讨厌的例子是我们的一个项目.它由几个组件组成,每个组件声明特定的已检查异常.问题(在我看来)是在设计时,并不确切知道某
在API中查看已检查的预测并不罕见,其中一个最着名的示例是 Closeable.close()中的IOException.并且经常处理此异常确实让我很烦.更令人讨厌的例子是我们的一个项目.它由几个组件组成,每个组件声明特定的已检查异常.问题(在我看来)是在设计时,并不确切知道某些例外是什么.因此,例如,组件Configurator声明了ConfiguratorExeption.当我问为什么不使用未经检查的异常时,我被告知我们希望我们的应用程序是健壮的,而不是在运行时.但它接近一个弱论点,因为:

>大多数这些例外有效地使app无法使用.是的,它没有爆炸,但它无法使消息记录洪水日志.
>这些例外并不具体,实际上意味着“发生了一些不好的事情”.客户应该如何恢复?
>事实上,所有恢复都包括记录异常,然后吞下它.这是在大型try-catch语句中执行的.

我认为,这是一种反复出现的模式.但仍然检查过的异常在API中被广泛使用.这是什么原因?是否有某些类型的API更适合检查异常?

解决方法

围绕这个问题有很多 controversy.

看一下关于该主题http://www.mindview.net/Etc/Discussions/CheckedExceptions的这篇经典文章

我个人倾向于支持自己使用运行时异常,并开始考虑在API中使用已检查的异常.

事实上,一些非常流行的Java API已经开始做同样的事情,Hibernate从版本3中放弃了对Runtime的已检查异常的使用,Spring Framework也倾向于使用Runtime而不是检查异常.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读