当构造函数中的方法抛出构造函数无法处理的检查异常时,如果您确定应用程序无法处理这些异常,如果没有构造的对象,是否可以捕获它们并将其作为运行时异常抛出?
发布于 2010-02-04 02:58:32
是的,在调用其他方法时,这在许多构造函数中是不可避免的,因为它们总是有可能抛出未检查的异常。
发布于 2010-02-04 03:10:08
是。这是标准的做法。
在Effective Java, 2nd Ed.中,这在项目61“抛出适用于抽象的异常”中有所涉及。所产生的异常是选中的还是未选中的,也包含在Effective Java的项目58中,“将选中的异常用于可恢复的条件,将运行时异常用于编程错误”。
这是一个构造函数而不是一个普通的方法,这并不是真正的问题。(事实上,构造函数可以说有更大的自由度,因为它们不受超级接口的约束。)
当由于另一个异常而引发异常时,最好确保将cause
设置在新的异常上。
发布于 2010-02-04 03:00:50
是。除非您知道应该如何处理异常,否则最好抛出它,而不是简单地吞下它并打印出堆栈跟踪(或者更糟糕的是,什么也不做)。
这将有助于防止以后出现一些极难调试的错误。
https://stackoverflow.com/questions/2194571
复制相似问题