Java NullPointerException 不打印栈信息
今天线上出了一个 bug,看日志是空指针异常:
java.lang.NullPointerException: null
但日志里只有这么多,没有详细的栈信息,也就是说,看起来像是人为抛了一个空的 NullPointerException,但看代码确实没有问题,确实打印了详细信息。
搜了一下,原因如下:
JVM 虚拟机会对异常信息进行优化,当相同异常出现很多次,会认为它是热点异常,忽略掉异常堆栈信息;
通过增加 JVM 参数:-XX:-OmitStackTraceInFastThrow
可解决。
于是搜索所有的这个异常的信息,找到第一条,终于发现了详细的栈信息。
顺利定位到了代码位置,修复了问题。