在 java 中,finally 有没有可能不会执行的,试看看下面的情况
java代码
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();
}
运行结果并没有打印"in finally",因为在主线程结束时,后台线程同样被结束掉,finally没有机会执行。