使用Eclipse清理Groovy中的堆栈跟踪?

时间:2010-02-25 12:50:02

标签: java groovy

我在Java Swing应用程序中使用Groovy作为我计划强制提供动态语言的一部分,直到我喜欢它们(部分正在发生)。

我的堆栈跟踪填充了像

这样的Groovy
org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor

有没有办法让Eclipse删除所有codehaus内容(基本上是过滤器堆栈跟踪)?

编辑:我可以使用grep(好吧,not yet)从命令行执行此操作,所以它不是那么糟糕,但Eclipse内部也会很棒

2 个答案:

答案 0 :(得分:10)

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都这样做,所以这些项目应该有一些提示。

答案 1 :(得分:2)

我没有“Run as Groovy application”的答案,但是如果你在Eclipse中运行GroovyTestcases作为jUnit测试,那么堆栈跟踪视图上方会有一个“过滤器堆栈跟踪”按钮。