gpt4 book ai didi

java - 没有 StackTrace 的 Java 中的 NullPointerException

转载 作者:bug小助手 更新时间:2023-10-28 10:38:14 24 4
gpt4 key购买 nike

我们的 Java 代码实例捕获了一个 NullPointerException,但是当我尝试记录 StackTrace(基本上最终调用 Throwable.printStackTrace() 时) ,我得到的只是:

java.lang.NullPointerException

还有其他人遇到过这个吗?我尝试在谷歌上搜索“java 空指针空堆栈跟踪”,但没有遇到类似的情况。

最佳答案

您可能正在使用 HotSpot JVM(最初由 Sun Microsystems,后来被 Oracle 收购,是 OpenJDK 的一部分),它执行了大量优化。要取回堆栈跟踪,您需要将以下选项传递给 JVM:

-XX:-OmitStackTraceInFastThrow

优化的是,当第一次发生异常(通常是NullPointerException)时,会打印完整的堆栈跟踪,并且JVM会记住堆栈跟踪(或者可能只是代码的位置)。当该异常经常发生时,将不再打印堆栈跟踪,既可以实现更好的性能,也不会用相同的堆栈跟踪淹没日志。

要了解这是如何在 HotSpot JVM 中实现的,grab a copy of it并搜索全局变量 OmitStackTraceInFastThrow。上次看代码(2019年),在文件graphKit.cpp .

关于java - 没有 StackTrace 的 Java 中的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2411487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com