Обработчик исключений S1166 должен сохранять исходное исключение генерирует ложное срабатывание - PullRequest
0 голосов
/ 07 мая 2020

В SonarQube 7.9.1 приведенный ниже фрагмент выдает ошибку Squid: 1166. Когда я смотрю на код, мне кажется, что это исключение обрабатывается правильно. Что не так?

} catch (final Exception ex) {
  Valeur[index] = "";
}

1 Ответ

0 голосов
/ 12 мая 2020

Я настоятельно рекомендую вам внимательнее изучить описание проблемы :

При обработке пойманного исключения исходное сообщение об исключении и трассировка стека должны регистрироваться или передаваться вперед.

Это означает, что вы должны хотя бы зарегистрировать свое исключение с некоторой информацией, поскольку это может иметь решающее значение на более позднем этапе. Также см. Дополнительные ссылки внизу, которые также предоставляют полезную информацию.

Самый простой способ - это записать это сообщение только на уровне отладки, например

} catch (final Exception ex) {
    log.debug("an exception occurred, oh no!", ex);
    Valeur[index] = "";
}

или, если вы думаете, что это совсем не нужно, у вас всегда есть возможность пометить проблемы как ложные срабатывания или добавить комментарий в той же строке, начиная с // NOSONAR, чтобы проблемы в той же строке игнорировались, что является то, что я бы не рекомендовал. как

} catch (final Exception ex) { // NOSONAR i do not want to log this
    Valeur[index] = "";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...