美文网首页
未捕获异常的处理

未捕获异常的处理

作者: 多喝水JS | 来源:发表于2017-08-20 12:43 被阅读41次

    当一个线程由于未捕获异常而退出时,JVM会把这个事件报告给应用程序提供的UncaughtExceptionHandler异常处理器。如果没有提供任何异常处理器,那么默认的行为是将栈追踪信息输出到System.err.

    例子

    public static void main(String[] args) {
            new Thread(new Runnable() {
                public void run() {
                    int i = 1 / 0;
    
                    System.out.println("dddddd");
                }
            }).start();
    

    上面代码执行时将抛出零除异常,我并没有将它捕获,那么JVM如何处理的呢?

    处理流程

    进到调用的方法里看看: 可以看到,当JVM遇到未捕获的异常时,首先获取应用程序提供的UncaughtExceptionHandler异常处理器。 如果没提供的话就直接把栈追踪信息输出到System.err;

    相关文章

      网友评论

          本文标题:未捕获异常的处理

          本文链接:https://www.haomeiwen.com/subject/lcrfdxtx.html