受保护的 Throwable 构造函数的用途
Uses for protected Throwable Constructor
从 Java 7 开始,java.lang.Throwable
class 有一个新的 protected
构造函数:
protected Throwable(String message, Throwable cause,
boolean enableSuppression, boolean writableStackTrace)
它似乎提供了关于是否应计算堆栈跟踪并允许抑制的细粒度控制。但是在什么情况下这才算有用呢?在不计算堆栈跟踪的情况下抛出此类异常是否有任何性能优势?
我会说这个或多或少的哲学问题。我在考虑这个,我可以想象几个场景:
您异常迅速地提出,例如每秒数百次。它可能是遗留代码,您无法更改它,但您可以抑制堆栈跟踪构建,这会为您带来一些性能提升。
您已经实现了自己的堆栈跟踪机制。我看到并发应用程序具有非常复杂的逻辑,其中堆栈跟踪没有说明问题的根本原因。但是我没有看到任何替代的堆栈跟踪实现。
从 Java 7 开始,java.lang.Throwable
class 有一个新的 protected
构造函数:
protected Throwable(String message, Throwable cause,
boolean enableSuppression, boolean writableStackTrace)
它似乎提供了关于是否应计算堆栈跟踪并允许抑制的细粒度控制。但是在什么情况下这才算有用呢?在不计算堆栈跟踪的情况下抛出此类异常是否有任何性能优势?
我会说这个或多或少的哲学问题。我在考虑这个,我可以想象几个场景:
您异常迅速地提出,例如每秒数百次。它可能是遗留代码,您无法更改它,但您可以抑制堆栈跟踪构建,这会为您带来一些性能提升。
您已经实现了自己的堆栈跟踪机制。我看到并发应用程序具有非常复杂的逻辑,其中堆栈跟踪没有说明问题的根本原因。但是我没有看到任何替代的堆栈跟踪实现。