实际上,这可能是由于热点优化所致:在抛出一定数量的相同异常后,它将停止打印跟踪。可以使用VM arg将其关闭,请参见:
从http://www.oracle.com/technetwork/java/javase/relnotes-139183.html:
现在,服务器VM中的编译器为所有“冷”内置异常提供了正确的堆栈回溯。为了提高性能,当几次抛出此类异常时,可以重新编译该方法。重新编译后,编译器可以使用不提供堆栈跟踪的预分配异常来选择更快的策略。要完全禁用预分配的异常,请使用以下新标志:-XX:-OmitStackTraceInFastThrow。
更多内容:
http://jawspeak.com/2010/05/26/hotspot-caused-exceptions-to-lose-their-stack-
traces-in-production-and-the-fix/



