在OS X 10.11上,我们的应用程序的用户遇到了几个没有堆栈跟踪的NPE(请参阅this stackoverflow-question)。我现在想自己创建一个来调试我们的错误处理。
如何防止创建堆栈跟踪?
答案 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;
}