创建异常e.fillInStacktrace()
之后,我直接找到了对Exception e = new Exception()
的显式调用。
我认为这是多余的,因为Throwable
的构造函数已经调用了fillInStacktrace()
。
但是也许我忽略了一些东西,这些行很有用:
Exception e = new Exception();
e.fillInStackTrace();
creationInfo = new CreationInfo(e.getStackTrace());
(
public CreationInfo(StackTraceElement[] aStackTrace){...}
)我认为
e.fillInStackTrace();
是多余的,并且会浪费大量资源,因为此方法很昂贵。 creationInfo = Thread.currentThread().getStackTrace();
是更好的方法。
在填写问题报告之前,我想问一问我是否忽略了某些内容?
最佳答案
两种说法都是正确的:甚至可以使用fillInStackTrace
的最大原因是让您在自己的异常中覆盖它,以节省提供堆栈跟踪信息的成本,或者需要隐藏有关以下内容的信息:引发异常的位置。有关更多详细信息,请参见this answer。
关于java - 调用exception.fillInStacktrace有用吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15472719/