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

今天遇到个java.lang.NullPointerException: null,发现没有堆栈信息,无法定位。看了下代码,按道理是会打印堆栈的啊。

try {
    ...
} catch(Throwable e) {
    log.error("", e);
}

查了下(https://stackoverflow.com/questions/2411487/nullpointerexception-in-java-with-no-stacktrace),发现是log的优化,如果NPE在代码中同一个地方出现多次,log会进行优化,不再打印堆栈信息。
也就是说,最开始的时候是会打印错误堆栈的。
翻日志到错误最早发生的地方,果然发现有打印错误堆栈。

另外,有很多人说是jdk的bug,在启动时加启动参数 -XX:-OmitStackTraceInFastThrow 也可以解决。

猜你喜欢

转载自blog.csdn.net/weitry/article/details/80923623
今日推荐