2 thanksorrow thanksorrow 于 2013.11.04 13:16 提问

关于Java抛出异常时,运行结果不确定的问题

main函数代码如下:
public static void main(String[]agrs)throws Exception
{
System.out.println(1);
throw new Exception();
}
不断重复运行,输出结果有两种:
第一种(我认为是符合预期的结果)——

——————————————————————————————————————————
1
Exception in thread "main" java.lang.Exception
at Deleteme.main(Deleteme.java:69)
——————————————————————————————————————————
第二种(奇怪的结果)——
——————————————————————————————————————————
Exception in thread "main" java.lang.Exception
at Deleteme.main(Deleteme.java:54)
1
——————————————————————————————————————————

问题就是,同样的代码,为什么输出不同?

2个回答

abeautifulboy
abeautifulboy   2013.11.04 15:19

从表面上看,应该是编译器对代码重排了

thanksorrow
thanksorrow 每次编译结果都不一样吗?
大约 4 年之前 回复
ygycomon
ygycomon   Rxr 2013.11.04 17:26

因为你在执行之后改动了代码

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!