首页 > 解决方案 > Java程序中未处理异常的输出

问题描述

以下程序

public class Test {

    public static void main(String[] args) {

        try
        {
            String t = null;
            t.toString();

        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}

在控制台打印:

java.lang.NullPointerException at Test.main(Test.java:9)

以及以下程序

public class Test {

    public static void main(String[] args) {

        String t = null;
        t.toString();
    }

}

在控制台打印:

Test.main(Test.java:7) 处的线程“main”java.lang.NullPointerException 中的异常

这两个控制台打印有什么区别?

标签: javaexceptionexception-handling

解决方案


要知道区别,首先我们必须了解“如果在 JAVA 中未处理异常会发生什么”。

您可以参考https://www.javamex.com/tutorials/exceptions/exceptions_uncaught_handler.shtml来了解它。

根据上述参考,我们可以看出这里没有重大区别,因为您问题的第二部分也将调用堆栈跟踪,但线程名称将作为其后缀。


推荐阅读