java - `return value' 来自 Java 中的构造函数异常?

标签 java exception instantiation

看看下面的代码片段:

A a = null
try {
  a = new A();
} finally {
  a.foo();  // What happens at this point?
}

假设 A 的构造函数抛出运行时异常。在标记的行,我是否总是保证会得到 NullPointerException,或者 foo() 将在半构造的实例上被调用?

最佳答案

try block 中的代码包含两个不同的操作:

  1. 创建一个新的 A 实例。
  2. 将新实例分配给名为 a 的变量。

如果第1步抛出异常,第2步将不会执行。
因此,您将始终得到一个 NullPointerException

关于java - `return value' 来自 Java 中的构造函数异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2474267/

相关文章:

java - 如何将二维数组转换为Set?

java - Counter HashMap 删除较少的计数器值

java - 访问 CXF Rest 服务中的 post 方法时出现问题

java - 在 Stream API 中使用 checked 装饰器函数是好的解决方案吗?

Java Class.newInstance 错误

java - 如何使用java在谷歌应用程序中写入csv文件

C++ 超出范围异常

windows - 如何从trap帧中抓取错误码?

使用 shared_ptr 函数模板的 C++ 实例化

java - 实例化 BufferedImage 的步骤