创建没有堆栈跟踪的NPE

时间:2015-10-07 07:48:55

标签: java stack-trace

在OS X 10.11上,我们的应用程序的用户遇到了几个没有堆栈跟踪的NPE(请参阅this stackoverflow-question)。我现在想自己创建一个来调试我们的错误处理。

如何防止创建堆栈跟踪?

2 个答案:

答案 0 :(得分:1)

嗯,实际上很简单:

final NullPointerException npe = new NullPointerException();
npe.setStackTrace(new StackTraceElement[0]);
throw npe;

答案 1 :(得分:1)

如链接帖子中所述,当相同的代码足够频繁地导致相同的异常时,就会发生优化。因此,一种方法是循环抛出异常抛出和错误处理代码足以开始查看优化。

或者你可以尝试这样的黑客攻击:

try {
    throw new NullPointerException("fake");
} catch (NullPointerException e) 
    e.setStackTrace(new StackTraceElement[0]);
    throw e;
}