java.lang.NullPointerException:null 无堆栈信息

这几天线上一直有npe异常的告警,通过查日志发现,报错信息为:

java.lang.NullPointerException: null

没有堆栈信息,估计是哪个对象为空,然后调用该对象的getxxx方法时,抛出异常。

本地试了一下,重现了该问题,后面只是打印了异常名称。

原因分析

JVM 虚拟机会对异常信息进行优化,当相同异常出现很多次,会认为它是热点异常,忽略掉异常堆栈信息;通过增加 JVM 参数:-XX:-OmitStackTraceInFastThrow 可解决。

解决:

在JVM启动参数中增加:-XX:-OmitStackTraceInFastThrow后,异常就能正常输出。


深入了解:

加上该参数是否会影响线上服务器的性能?

    肯定会,需要综合分析再使用。

该参数只会对以下异常做日志优化:

NullPointerException

ArithmeticException

ArrayIndexOutOfBoundsException

ArrayStoreException

ClassCastException

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容