[size=medium]
在 Java 中,finally 有没有可能不会执行的,试看看下面的情况
[/size]
[size=medium]
运行结果并没有打印"in finally",因为在主线程结束时,后台线程同样被结束掉,finally没有机会执行。
[/size]
在 Java 中,finally 有没有可能不会执行的,试看看下面的情况
[/size]
public class TestFinally {
private static class DaemonThread extends Thread {
@Override
public void run() {
try {
TimeUnit.MILLISECONDS.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
System.out.println("In finally");
}
}
}
public static void main(String args[]) {
DaemonThread daemon = new DaemonThread();
daemon.setDaemon(true);
daemon.start();
}
}
[size=medium]
运行结果并没有打印"in finally",因为在主线程结束时,后台线程同样被结束掉,finally没有机会执行。
[/size]