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

Dan*_*ark 6 java groovy

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

我的堆栈跟踪充满了像Groovy这样的东西

org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor
Run Code Online (Sandbox Code Playgroud)

有没有办法让Eclipse删除所有这些codehaus东西(过滤器堆栈跟踪,基本上)?

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

xls*_*son 10

Groovy中有一个实用程序可以完全满足您的需求:StackTraceUtils.STU将清除堆栈跟踪中的所有callsite信息,留下您真正感兴趣的内容.

编辑:在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
}
Run Code Online (Sandbox Code Playgroud)

StackTraceUtils在最新版本的Groovy中提供,最初来自Grails.我不确定你会如何将这个应用到你的所有项目堆栈中,但我认为Griffon和Grails都这样做,所以这些项目应该有一些提示.