#java #findbugs #printstacktrace
#java #ошибки поиска #printstacktrace
Вопрос:
В моем тестовом коде junit 4 я использую правила тестирования, которые содержат такой код:
catch (Throwable t) {
t.printStackTrace();
throw t;
}
Findbugs жалуется на это, и это справедливо — этого не следует делать в нашем производственном коде. Однако в этом случае я считаю, что использование оправдано, и я пытаюсь использовать аннотацию @SuppressFBWarnings, чтобы заставить findbugs замолчать. Однако ни
@SuppressFBWarnings
private void warmUp() throws Throwable {
ни
@SuppressFBWarnings("IMC_IMMATURE_CLASS_PRINTSTACKTRACE")
private void warmUp() throws Throwable {
ни
@SuppressFBWarnings({"IMC_IMMATURE_CLASS_PRINTSTACKTRACE"})
private void warmUp() throws Throwable {
получите желаемый результат.
Как мне правильно использовать @SuppressFBWarnings, чтобы отменить предупреждение?
Комментарии:
1. Второй вариант правильный. Вы перекомпилировали?
2. Спасибо за отзыв. Я не мог заставить это работать и на данный момент использовал регистраторы. Но это помогает мне знать, что должно работать, если мне нужно справиться с подобной проблемой.
Ответ №1:
Используя следующую зависимость gradle для аннотаций FindBugs:
compile 'com.google.code.findbugs:findbugs-annotations:3.0.1'
Вот что должно работать:
@SuppressFBWarnings(value = "IMC_IMMATURE_CLASS_PRINTSTACKTRACE", justification = "Document why this should be ignored here")
private void warmUp() throws Throwable {}