小编Ced*_*eve的帖子

发生异常时分配值(Java)

以下是一些示例代码来说明我们的问题:

A a = null;
try {
  a = new A();
  a = doSomethingThatWillThrowAnException();
} finally {
  System.out.println("A = " + a);
}
Run Code Online (Sandbox Code Playgroud)

问题是,finally块中打印的“ a”的值是什么?

我不确定,我想我偶然发现了一些可能无法完全描述的东西。我在笔记本电脑(x86上为jdk1.6.0.16)上观察到“ a”等于A()。但是,对于Solaris上的JDK 1.4,我认为该值为null(就像即使抛出异常也会执行分配一样)。显然,这与错误有关,我们将部署一个没有分配的版本,只是为了确保,但是我们想知道你们中的一个人是否也注意到了这一点,或者提出了某种解释。

我们还将做的是编写一个示例程序,以在有问题的JDK上对此进行演示……然后我们将发布结果。

java variable-assignment

2
推荐指数
1
解决办法
2741
查看次数

标签 统计

java ×1

variable-assignment ×1