首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java程序中未处理异常的输出

Java程序中未处理异常的输出
EN

Stack Overflow用户
提问于 2018-10-04 21:40:30
回答 2查看 225关注 0票数 -1

下面的程序

代码语言:javascript
复制
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)

和下面的程序

代码语言:javascript
复制
public class Test {

    public static void main(String[] args) {

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

}

在控制台中打印:

在Test.main(Test.java:7)的线程"main“java.lang.NullPointerException中出现

异常

这两个控制台打印有什么不同?

EN

回答 2

Stack Overflow用户

发布于 2018-10-04 23:51:46

要了解其中的区别,首先我们必须了解“如果JAVA中没有处理异常会发生什么”。

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

根据上面的引用,我们可以看出这里没有什么大的不同,因为你的问题的第二部分也会调用堆栈跟踪,但是线程名将会作为它的后缀。

票数 0
EN

Stack Overflow用户

发布于 2018-10-05 03:49:15

两者之间的区别在于,在第一个示例中,您捕获了异常并打印了异常堆栈跟踪。打印后,您的程序将继续正常运行(在本例中为:退出)。

在第二个示例中,您没有捕获异常,当前运行的线程(主线程)突然结束(在您的代码中也结束了程序),并且线程的未捕获的异常处理程序将打印前缀为“exception in thread " main”“的异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52648247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档