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

标签 java exception error-handling

当构造函数中的方法抛出了已检查的异常而构造函数无法处理时,如果您确定应用程序无法处理它并且将无用,那么是否可以捕获它们并将它们作为运行时异常抛出回来正在构造的对象?

最佳答案

是的。这是标准做法。

Effective Java, 2nd Ed.这在第 61 条“抛出适合于抽象的异常”中涵盖。 Effective Java 在第 58 条“对可恢复的条件使用检查的异常,对编程错误使用运行时异常”也涵盖了生成的异常是检查还是未检查。

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

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

关于java - 构造函数可以抛出运行时异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2194571/

相关文章:

java - 为什么 HashMap 在指定精确容量时会再次调整大小?

Java Jersey 客户端 header 问题

java - 使用java更改HashMap中的部分值

exception - 未捕获的异常在线程中如何表现?

c# - 捕获异常,然后抛出/发送异常并继续

php - 作为错误处理程序或自定义错误处理类的异常?

error-handling - 如何自定义503错误- Varnish 4

java - 从socket bufferreader永远读取android

laravel - 处理laravel中的jwt auth错误

node.js - Sequelize 'Dialect needs to be explicitly supplied as of v4.0.0'