java异常捕获后如何打印详细信息

发布时间 2023-07-20 17:13:29作者: 苹果芒

前言
dubbo接口数据进行转换的过程中,出现了空指针,但是自己捕获的时候没有注意这个问题,只是简单的打印出来,结果发现答应出来的都是null,基本上是无效的异常打印。

完善异常信息
一开始的代码是如下所示:

try {
main(event, controlDTO);
} catch (Exception e) {
logger.error("错误信息:" + e.getMessage());
}

输出的结果如下所示:

错误信息:null
打印的信息太少了,于是我单纯的以为改成如下就可以了:

logger.error("错误信息:" + e);
但是发现数据依旧很少,甚至一点也不详细。于是我很奇怪,整个e都打印出来了,为啥重要信息还没打印出来。上网查了一下,应该改成下面这种方式:

e.printStackTrace();

打印的信息就丰富了很多。除了标准异常外,打印
at C.class
at B.class
at A.class
…再向外层抛异常。

了解一下原因
e.getMessage() ; 只会获得异常的名称。
toString打印错误输出内容样式。
printStackTrace打印错误输出内容样式:


一个例子献上,大家可以看下这个问题:

try {
int a=1;
Integer b =null;
if (a==b) { // 抛异常

}
}catch (Exception e){
e.printStackTrace();
System.out.println("e.getMessage="+e.getMessage());
System.out.println("e="+e);
}
————————————————
版权声明:本文为CSDN博主「予亭」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/randompeople/article/details/90487703