从Java 7开始,java.lang.Throwable
类有一个新的protected
构造函数:
protected Throwable(String message, Throwable cause,
boolean enableSuppression, boolean writableStackTrace)
似乎可以对是否应该计算堆栈跟踪并允许抑制进行细粒度控制。但在什么情况下这可以被认为是有用的?在没有堆栈跟踪计算的情况下抛出这样的异常是否有任何性能优势?
答案 0 :(得分:0)
我会说这个或多或少的哲学问题。我在想这个,我可以想象几个场景:
您极快地提出异常,例如每秒数百次。它可能是遗留代码,你无法改变它,但你可以抑制堆栈跟踪构建,这会为你带来一些性能提升。
您已经实现了自己的堆栈跟踪机制。我看到了具有非常复杂逻辑的并发应用程序,其中堆栈跟踪没有说明问题的根本原因。但是我没有看到任何替代的堆栈跟踪实现。