У меня есть следующий фрагмент кода в моей программе, и я запускаю SonarQube 5 для проверки качества кода после его интеграции с Maven.Sonar жалуется на регистрацию и перестройку исключения
Однако, Сонар жалуется, что я должен Либо регистрировать или отменять это исключение.
Что мне здесь не хватает? Я уже не регистрирую исключение?
private boolean authenticate(User user) {
boolean validUser = false;
int validUserCount = 0;
try {
DataSource dataSource = (DataSource) getServletContext().getAttribute("dataSource");
validUserCount = new MasterDao(dataSource).getValidUserCount(user);
} catch (SQLException sqle) {
LOG.error("Exception while validating user credentials for user with username: " + user.getUsername() + " and pwd:" + user.getPwd());
LOG.error(sqle.getMessage());
}
if (validUserCount == 1) {
validUser = true;
}
return validUser;
}
Может быть, жалуется, что вы входите в сообщение, но не само исключение, которое заставляет вас потерять потенциально полезный трассировки стека исключения. В любом случае, вы должны определенно сделать исключение здесь и сигнализировать о проблеме пользователю, а не делать так, как если бы все шло нормально и возвращалось так же, как если бы учетные данные пользователя были неправильными. Регистрация пароля, безусловно, не очень хорошая идея: серьезная проблема безопасности. –
Вы не регистрируете сообщение и исключение в одном выражении. Поэтому другие записи журнала могут находиться между обоими сообщениями в журнале сервера, скрывая сильное соединение обоих этих сообщений. И может быть исключение, выведенное из первого оператора журнала, скрывающего информацию, содержащуюся во второй. – SpaceTrucker