在 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没有机会执行。
时间: 2024-10-25 13:12:14