Обработчики исключений должны сохранять исходное исключение: либо занести в журнал, либо повторно сгенерировать это исключение.

Это мой метод, когда я пытаюсь проанализировать свой код с помощью sonarQube, я получаю эту ошибку:

Обработчики исключений должны сохранять исходное исключение: либо занести в журнал, либо повторно сгенерировать это исключение.

Почему я получаю эту ошибку, я не должен поймать исключение, как мой метод?

мой метод:

for (String QT : Q_T) {

                try {
                        // some logic 
                    }

                } catch (JsonParseException e) {                    
                    LOG.log(Level.SEVERE, e.toString());
                } catch (JsonMappingException e) {
                    LOG.log(Level.SEVERE, e.toString());
                } catch (IOException e) {
                    LOG.log(Level.SEVERE, e.toString());
                }
                catch (Exception e) {
                    LOG.log(Level.SEVERE, e.toString());
                }
            }
        }

person KSK    schedule 04.08.2015    source источник


Ответы (1)


Я полагаю, что он пытается сказать вам, чтобы вы регистрировали Exception как есть, а не версию toString(), например здесь, также добавляя некоторый «контекст» или информацию в log

for (String QT : Q_T) {
        try {
            // some logic 
        } catch (JsonParseException e) {                    
            LOG.log(Level.SEVERE, "context", e);
        } catch (JsonMappingException e) {
            LOG.log(Level.SEVERE, "context", e);
        } catch (IOException e) {
            LOG.log(Level.SEVERE, "context", e);
        } catch (Exception e) {
            LOG.log(Level.SEVERE, "context", e);
        }
}
person carcaret    schedule 04.08.2015