Bootstrap

未捕获异常会对线程产生什么结果

如题。

答案:线程在最外层都没有捕获异常的话,线程会终止。

 

测试1、

public static void main(String args[]){
        Object o = new Object();
        if (o == null){
            throw  new RuntimeException();
        }
        try {
            Thread.sleep(5000L);
            System.out.println("sleep complete");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

正常情况下会睡眠结束后结束线程;而在debug过程中,我们手动修改o为null,就不会进入下面的线程睡眠代码。

 

 测试2、捕获运行时异常,线程不会挂

public static void main(String args[]){
        Object o = new Object();
        try {
            if (o == null){
                throw  new RuntimeException();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        try {
            Thread.sleep(5000L);
            System.out.println("sleep complete");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

 

转载于:https://www.cnblogs.com/grey-wolf/p/6668952.html

;