java - 堆栈跟踪 : StackTraceElement Customization

标签 java stack-trace

我想自定义 StackTraceElement class的哈希码。我的问题是如何使用这个新的自定义类而不是 JVM 的默认 StackTraceElement 类。

最佳答案

I want to customize the StackTraceElement class by extending it

StackTraceElement最终,因此无法扩展。

如果您(无论出于何种原因)想要自定义堆栈跟踪的打印方式,您可以实现一个实用程序方法,该方法采用 Throwable ,然后使用 StackTraceElement< 中的各种方法。/code> 创建您自己的布局,例如

public static void printCustomizedTrace(Throwable t) {
   for(StackTraceElement e : t.getStackTrace()) {
      System.err.println(" => " + e.getFileName() + ":" + e.getLineNumber());
   }
}

您还可以使用委托(delegate)并创建CustomStackTraceElements列表,并在中实现其他逻辑(例如不同的hashmap())CustomStackTraceElement类:

public static List<CustomStackTraceElement> getCustomizedStackTrace(Throwable t) {
   List<CustomStackTraceElement> result = new ArrayList<>();

   for(StackTraceElement e : t.getStackTrace()) {
      result.add(new CustomStackTraceElement(e));
   }

   return result;
}

关于java - 堆栈跟踪 : StackTraceElement Customization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14438465/

相关文章:

java - 保存父对象后自动保存子对象

Java - 是否可以使用方法签名输出堆栈跟踪?

c# - 如何在不丢失堆栈跟踪的情况下重新抛出 TargetInvocationException 的内部异常

java - jar 文件更改时 spring boot 热重载

java - 当您在长生命周期对象上持有对无状态 EJB 的引用时会发生什么?

java - 调整没有文字的照片大小.. 是否需要 RenderingHints?

java - 如何检查 Java 类是否是当前堆栈跟踪的一部分?

java - 从 Eclipse 内部运行的 RCP 应用程序的 .log 文件在哪里?

android - 如何找到这个堆栈跟踪?

Java 动态多态性和类文件