0
我有这样的代码如下:爪哇 - 无限循环中是不可能的方式终止
@Override
protected Void doInBackground() throws Exception {
try {
while(true) cpu.step();
} catch(Throwable t) {
throw new RuntimeException(t);
} finally {
System.out.println("EmulationWorked task completed");
}
}
这个循环应该总是通过抛出一个异常退出,但对我来说我看到控制到达println
声明不这样做。
我的Java/JVM版本如下:
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
这个问题是关系到我所看到的是另一个问题,我以前发布的一部分的问题:Gameboy emulation - SwingWorker stuck at Unsafe.park
这是一个已知的JVM的bug某种?
请阅读'finally'的功能。 –
该方法应该总是抛出异常,这在我的特殊情况下不会发生。我知道finally块将始终执行。 – rationalrevolt
你怎么知道这不是在这种特殊情况下发生的? –