Java线程组中未处理异常实例如何进行深入分析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计578个文字,预计阅读时间需要3分钟。
本示例介绍了Java线程组与未处理的异常。自JDK 1.5起,Java加强了线程的异常处理,若线程执行过程中抛出未处理的异常,JVM将在结束线程时捕获该异常。
本文实例讲述了Java线程组与未处理异常。分享给大家供大家参考,具体如下:
一 点睛
从JDK1.5开始,Java加强了线程的异常处理,如果线程执行过程中抛出了一个未处理的异常,JVM在结束该线程之前会自动查找是否有对应的Thread.UncaughtExceptionHandler对象,如果找到该处理器对象,将会调用该对象的uncaughtException(Thread t, Throwable e)方法来处理该异常。
Thread.UncaughtExceptionHandler是Thread类的一个内部公共静态接口,该接口内只有一个方法:void uncaughtException(Thread t, Throwable e),该方法中的t代表出现异常的线程,而e代表该线程抛出的异常。
线程组处理异常的默认流程:
1 如果该线程组有父线程组,则调用父线程组的uncaughtException方法来处理该异常。
2 如果该线程实例所属的线程类有默认的异常处理器(由setDefaultUncaughtExceptionHandler方法设置的异常处理器),那就调用该异常处理器来处理该异常。
3 如果该异常对象是ThreadDeath的对象,将不做任何处理;否则将异常跟踪栈的信息打印到System.err错误输出流,并结束该线程。
本文共计578个文字,预计阅读时间需要3分钟。
本示例介绍了Java线程组与未处理的异常。自JDK 1.5起,Java加强了线程的异常处理,若线程执行过程中抛出未处理的异常,JVM将在结束线程时捕获该异常。
本文实例讲述了Java线程组与未处理异常。分享给大家供大家参考,具体如下:
一 点睛
从JDK1.5开始,Java加强了线程的异常处理,如果线程执行过程中抛出了一个未处理的异常,JVM在结束该线程之前会自动查找是否有对应的Thread.UncaughtExceptionHandler对象,如果找到该处理器对象,将会调用该对象的uncaughtException(Thread t, Throwable e)方法来处理该异常。
Thread.UncaughtExceptionHandler是Thread类的一个内部公共静态接口,该接口内只有一个方法:void uncaughtException(Thread t, Throwable e),该方法中的t代表出现异常的线程,而e代表该线程抛出的异常。
线程组处理异常的默认流程:
1 如果该线程组有父线程组,则调用父线程组的uncaughtException方法来处理该异常。
2 如果该线程实例所属的线程类有默认的异常处理器(由setDefaultUncaughtExceptionHandler方法设置的异常处理器),那就调用该异常处理器来处理该异常。
3 如果该异常对象是ThreadDeath的对象,将不做任何处理;否则将异常跟踪栈的信息打印到System.err错误输出流,并结束该线程。

