让我试着解释一下..我们有一台运行 Jboss 5.1
的服务器,有很多并发连接,好吧,有时我们需要重新启动并做一些维护/发布。
问题是,有时我们启动服务器,看起来有些库在启动时没有加载,或者由于某些其他原因,我们不断收到 NullPointerException
而没有任何堆栈跟踪。我们确实知道它被抛出的类,但通过检查代码,可能由于某种原因抛出空指针,甚至强制出现一些异常,它们至少都有堆栈跟踪。
我在 stackoverflow 中找到了许多关于 JVM
做一些优化的答案,但我们刚刚启动了服务器。我不相信它会做任何优化,即使第一个 exception
被抛出。我还检查了任何相关的 setStackTrace
或类似 ex.toString()
的代码......我们也没有。
所以我的问题实际上是,除了这个优化之外还有什么原因可以在没有堆栈跟踪的情况下抛出这样的exception
?
编辑:
我的问题与 -XX:-OmitStackTraceInFastThrow
无关,因为即使在第一个异常时它也会发生!
最佳答案
使用 -XX:-OmitStackTraceInFastThrow
JVM 参数。
关于java - 没有 StackTrace 的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33369407/