首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >构造函数抛出运行时异常可以吗?

构造函数抛出运行时异常可以吗?
EN

Stack Overflow用户
提问于 2010-02-04 02:54:52
回答 4查看 4.3K关注 0票数 19

当构造函数中的方法抛出构造函数无法处理的检查异常时,如果您确定应用程序无法处理这些异常,如果没有构造的对象,是否可以捕获它们并将其作为运行时异常抛出?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-04 02:58:32

是的,在调用其他方法时,这在许多构造函数中是不可避免的,因为它们总是有可能抛出未检查的异常。

票数 11
EN

Stack Overflow用户

发布于 2010-02-04 03:10:08

是。这是标准的做法。

Effective Java, 2nd Ed.中,这在项目61“抛出适用于抽象的异常”中有所涉及。所产生的异常是选中的还是未选中的,也包含在Effective Java的项目58中,“将选中的异常用于可恢复的条件,将运行时异常用于编程错误”。

这是一个构造函数而不是一个普通的方法,这并不是真正的问题。(事实上,构造函数可以说有更大的自由度,因为它们不受超级接口的约束。)

当由于另一个异常而引发异常时,最好确保将cause设置在新的异常上。

票数 12
EN

Stack Overflow用户

发布于 2010-02-04 03:00:50

是。除非您知道应该如何处理异常,否则最好抛出它,而不是简单地吞下它并打印出堆栈跟踪(或者更糟糕的是,什么也不做)。

这将有助于防止以后出现一些极难调试的错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2194571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档