java - 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 中的异常
这两个控制台打印有什么区别?
解决方案
要知道区别,首先我们必须了解“如果在 JAVA 中未处理异常会发生什么”。
您可以参考https://www.javamex.com/tutorials/exceptions/exceptions_uncaught_handler.shtml来了解它。
根据上述参考,我们可以看出这里没有重大区别,因为您问题的第二部分也将调用堆栈跟踪,但线程名称将作为其后缀。
推荐阅读
- html - 用于链接到标题中当前页面部分的语义 HTML 标记
- c# - 将列表传递给另一个表单但无法从中获取值
- docker - 在 apache mesos 上安装 Marathon
- css - ajax调用时转换css丢失
- c++ - 如何使用 boost::spirit::x3 测试字符串的有效双重内容?
- apache-kafka - 在 kafka 中为基于正则表达式的主题指定默认分区和复制因子
- c# - WorkItemHttpClient - 未找到 TFS 工作项或没有读取它的权限
- codeigniter - 在 codeigniter 中的动态数据的数据表中搜索不起作用
- clojure - 无法使用 Midje 模拟 HugSQL 生成的数据库函数
- shell - shell脚本加载jar文件并挂起