Очистить трассировки стека в Groovy с помощью Eclipse? - PullRequest
6 голосов
/ 25 февраля 2010

Я использую Groovy в приложении Java Swing как часть моего плана, чтобы принудительно кормить себя динамическими языками, пока они мне не понравятся (что происходит, частично).

Следы моего стека заполнены Groovy, например,

org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor

есть ли способ заставить Eclipse удалить все эти codehaus вещи (в основном следы стека фильтров)?

Редактировать: Я могу сделать это из командной строки с помощью grep (ну, еще не ), так что это не так уж плохо, но внутри Eclipse было бы тоже здорово .

Ответы [ 2 ]

10 голосов
/ 26 февраля 2010

В 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 делают это, поэтому в этих проектах должны быть некоторые намеки.

2 голосов
/ 26 февраля 2010

У меня нет ответа на вопрос «Запускать как приложение Groovy», но если вы запускаете GroovyTestcases как тесты jUnit в Eclipse, над представлением трассировки стека есть кнопка «Фильтровать трассировки стека».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...