Как правильно использовать @SuppressFBWarnings, чтобы игнорировать предупреждение о обнаружении ошибок при отслеживании отпечатков пальцев

#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 {}