java 捕获异常打印详细错误信息:Exception e

    xiaoxiao2022-07-13  196

    前言

    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); }

    社招、校招内推时刻

    本人在阿里巴巴工作,业余时间做了社招、校招的公众号,可以内推大家,免筛选直接面试,公众号的一些文章也帮助大学、研究生的一些同学了解校招、了解名企,工作几年的同学想换工作也可以找我走社招内推,同时大家对文章有问题,也可以公众号找我,扫码关注哦!

    参考博客

    JAVA Catch中异常信息的输出 System.out.println(e) e.printStackTrace()

    最新回复(0)