Java 检索异常完整堆栈跟踪

Java 检索异常完整堆栈跟踪,java,exception,apache-commons,lang,Java,Exception,Apache Commons,Lang,在我的项目中,我正在尝试将ApacheCommonsLang从2.4升级到3.1。我的实现引用了ExceptionUtil.getFullExceptionTrace(e),它在3.1中不再存在。 搬迁原因如下: 正在删除IsthRowTableNested、IsNestedThrowTable和getFullStackTrace 因为一旦你进入JDK1.4.LANG-491,它们都是不可操作的。” 。 围绕这一变化的几个问题: 我很困惑,这是否意味着我们需要探索其他方法来检索完整堆栈跟踪,或者

在我的项目中,我正在尝试将ApacheCommonsLang从2.4升级到3.1。我的实现引用了ExceptionUtil.getFullExceptionTrace(e),它在3.1中不再存在。 搬迁原因如下:

正在删除IsthRowTableNested、IsNestedThrowTable和getFullStackTrace 因为一旦你进入JDK1.4.LANG-491,它们都是不可操作的。”

。 围绕这一变化的几个问题:

  • 我很困惑,这是否意味着我们需要探索其他方法来检索完整堆栈跟踪,或者我们可以简单地用ExceptionUtils.getStackTrace(e)替换

  • 你知道JDK1.4之后是什么改变了方法的冗余性吗

  • 我们不能简单地执行e.toString(),其中e是我的异常实例吗

  • 感谢Java 1.4在Throwable类上引入了方法,它是所有异常类的父类。如果需要以字符串形式获取堆栈跟踪,可以使用ExceptionUtils.getStackTrace(e)或类似的内容:

      Exception e = ...
      StringWriter sw = new StringWriter();
      e.printStackTrace(new PrintWriter(sw));
      String stack Trace = sw.toString();
    

    请参阅有关从Exception中删除方法的其他讨论,直到。

    谢谢Eugene。讨论中列出了“getFullStackTrace没有什么意义。在1.4+中,它只打印一个项目”。那么我如何获得fullstackTrace呢?那么“ExceptionUtils.getStackTrace(e)”是一个等价的解决方案吗?或者我在这里出错了吗?是的,如果仍然需要getFullStackTrace,这仍然令人困惑。经过一些研究,我发现getStackTrace()已经足够了,我们不需要getFullStackTrace(),正如Java 1.4一样,所有的垃圾都可以与原因联系在一起。一些参考资料:和