用于受保护的Throwable构造函数

时间:2016-03-12 13:37:02

标签: java exception throwable

从Java 7开始,java.lang.Throwable类有一个新的protected构造函数:

protected Throwable(String message, Throwable cause,
                    boolean enableSuppression, boolean writableStackTrace)

似乎可以对是否应该计算堆栈跟踪并允许抑制进行细粒度控制。但在什么情况下这可以被认为是有用的?在没有堆栈跟踪计算的情况下抛出这样的异常是否有任何性能优势?

1 个答案:

答案 0 :(得分:0)

我会说这个或多或少的哲学问题。我在想这个,我可以想象几个场景:

  1. 您极快地提出异常,例如每秒数百次。它可能是遗留代码,你无法改变它,但你可以抑制堆栈跟踪构建,这会为你带来一些性能提升。

  2. 您已经实现了自己的堆栈跟踪机制。我看到了具有非常复杂逻辑的并发应用程序,其中堆栈跟踪没有说明问题的根本原因。但是我没有看到任何替代的堆栈跟踪实现。