是否在引发 Java 异常时生成堆栈跟踪?
2022-09-04 05:58:29
这是假设我们不调用 .printstacktrace 方法 - 只是抛出和捕获。
我们正在考虑针对某些性能瓶颈。
这是假设我们不调用 .printstacktrace 方法 - 只是抛出和捕获。
我们正在考虑针对某些性能瓶颈。
否,堆栈跟踪是在构造异常对象时生成的,而不是在引发异常对象时生成的。Throwable() 构造函数调用 fillInStackTrace()。(至少在Sun/Oracle的JDK 6 for Windows中是这样。
构造异常时捕获堆栈跟踪。
如果你真的不关心stacktrace,你可以构造一次异常,然后多次抛出它,但它看起来像一个黑客,可能会令人困惑。