我在 Java Swing 应用程序中使用 Groovy 作为我强制使用动态语言直到我喜欢它们的计划的一部分(这在一定程度上正在发生)。
我的堆栈跟踪充满了 Groovy 的东西,比如
org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor
有没有办法让 Eclipse 删除所有 codehaus
东西(过滤堆栈跟踪,基本上)?
编辑:我可以在命令行中使用 grep
(好吧,not yet)执行此操作,所以还不错,但在 Eclipse 内部会很棒也是。
最佳答案
Groovy 中有一个实用程序可以完全满足您的需求:StackTraceUtils。 STU 将从您的堆栈跟踪中清除所有调用站点信息,留下您真正感兴趣的内容。
编辑:在 Java 中,您必须根据注释将异常封装在 java.lang.RuntimeException
中。
使用示例:
try {
1/0;
} catch (Throwable t) {
throw new RuntimeException(org.codehaus.groovy.runtime.StackTraceUtils.sanitize(t)); //Modifies the Throwable and rethrows
}
StackTraceUtils 在最新版本的 Groovy 中可用,最初来自 Grails。我不确定您将如何将其应用于所有项目堆栈跟踪,但我认为 Griffon 和 Grails 都这样做,因此这些项目中应该有一些提示。
关于java - 使用 Eclipse 清理 Groovy 中的堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2334037/