我在创建异常Exception e = new Exception()
后发现一个显式调用e.fillInStacktrace()
。
我认为这是多余的,因为Throwable
的构造函数已经调用了fillInStacktrace()
。
但也许我忽略了什么,这几行可能是有用的:
Exception e = new Exception();
e.fillInStackTrace();
creationInfo = new CreationInfo(e.getStackTrace());
(public CreationInfo(StackTraceElement[] aStackTrace){...}
)
我认为:
在创建异常后直接调用
e.fillInStackTrace();
会浪费很多资源,因为这个方法很耗费资源。看起来这个结构只是为了获取当前的堆栈跟踪信息,因此:
是更好的方式。
creationInfo = Thread.currentThread().getStackTrace();
在提交问题报告之前,我想问一下您是否有看漏了什么?