我在 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/

10-14 09:16