如何在Java中记录尽可能多的异常信息?
在Java中记录异常时,我遇到了几次常见问题。似乎有各种不同类型的需要处理。例如,有些包装其他异常,有些根本没有消息 - 只有类型。
我见过的大多数代码都使用 or ) 记录异常。但是这些方法并不总是捕获查明问题所需的所有信息 - 其他方法,例如有时提供其他信息。getMessage()
toString(
getCause()
getStackTrace()
例如,我现在在 Eclipse Inspect 窗口中看到的异常是 .异常本身没有原因,没有消息,没有堆栈跟踪...但是 getCause() 中的目标是 ,并填充了这些详细信息。InvocationTargetException
InvalidUseOfMatchersException
所以我的问题是:给定任何类型的异常作为输入,请提供一个单一的方法,该方法将输出一个格式良好的字符串,其中包含有关异常的所有相关信息(例如,可能递归调用等?在发布之前,我几乎要自己尝试一下,但真的不想重新发明轮子 - 当然这样的事情以前一定已经做过很多次了......?getCause()