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