美文网首页
一次异常堆栈信息打印问题

一次异常堆栈信息打印问题

作者: 吴世浩 | 来源:发表于2018-09-10 11:13 被阅读18次

    之前同事写的一个更新数量的代码,先放入缓存,在看线程每秒轮询下,看是否有值,有的话就更新,但是在取出的对象中有空值,造成该方法一直报空指针异常,到线上后异常信息很多,但是我打印的堆栈信息却没有显示出具体哪行报错 ,只能再看代码进行猜测,但是线上日志堆栈不完整这个就让定位变得更加模糊,所以我把可能出现空指针的地方都做了处理,但是线上堆栈问题也让我好奇,就跟一个朋友聊了下这种情况,很巧合的是,他们之前遇到过,就跟我说让我配置下jvm的参数

     -XX:-OmitStackTraceInFastThrow
    

    线上日志截图如下


    1533635160(1).png 1533638230(1).png

    后面跟架构师聊这个问题,发现公司内部文章也有同事遇到,


    image.png

    所以当一些异常抛出的足够多的时候,JIT编译器会优化掉异常堆栈的信息。加入** -XX:-OmitStackTraceInFastThrow**参数才会显示所有的信息。

    可以查看该偏文章

    相关文章

      网友评论

          本文标题:一次异常堆栈信息打印问题

          本文链接:https://www.haomeiwen.com/subject/twajgftx.html