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

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

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

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

 -XX:-OmitStackTraceInFastThrow

线上日志截图如下


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

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


image.png

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

可以查看该偏文章

相关文章

  • 日志打印无堆栈信息

    情况:系统抛出异常,日志没有打印堆栈信息 错误日志正常打印 分析:异常信息打印格式没有错误,本地测试没有问题,线上...

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

    之前同事写的一个更新数量的代码,先放入缓存,在看线程每秒轮询下,看是否有值,有的话就更新,但是在取出的对象中有空值...

  • log exception without trace 异常信息

    1.可用率报警后查看异常日志,发现打印的异常信息,没有堆栈信息 2.检查日志打印格式,是按照异常对象打印的,是正确...

  • 查看JVM信息的命令

    1. jstack 获取线程堆栈信息 打印堆栈信息到标准输出 jstack PID 打印堆栈信息到标准输出,会打印...

  • java 正确的日志使用习惯

    禁止使用e.printStackTrace() e.printStackTrace()打印的是异常堆栈信息,会额外...

  • jvm参数配置

    核心配置参数:-OmitStackTraceInFastThrow:当大量异常时,jvm默认不打印后面的堆栈信息,...

  • Slf4j error方法如何打印格式化字符串+异常堆栈信息

    需求:打印error时,既想打印带参数的字符串,也想打印异常堆栈信息 Answer:只需调用log.error格式...

  • 异常与调试

    通过try...except...finally处理异常。 调用堆栈 出现异常返回时,会打印调用堆栈 记录错误 抛...

  • JVM之消失的堆栈:-XX:-OmitStackTraceInF

    问题描述 近期查看测试环境日志,经常会打印一些没有堆栈的异常信息,对问题排查无疑是致命的。 第一反应是"什么鬼?"...

  • 异常

    1,提倡异常封装 友好性:阅读者,开发人员需要查找问题,需要打印出堆栈信息,而用户需要了解具体业务原因,如文件太大...

网友评论

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

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