异常处理程序应保留原始异常:记录或重新抛出此异常
Exception handlers should preserve the original exception : Either log or rethrow this exception
这是我的方法,当我尝试通过 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());
}
}
}
我相信它试图告诉你的是按原样记录 Exception
,而不是像 here 这样的 toString()
版本,同时添加一些 'context'或信息给 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);
}
}
这是我的方法,当我尝试通过 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());
}
}
}
我相信它试图告诉你的是按原样记录 Exception
,而不是像 here 这样的 toString()
版本,同时添加一些 'context'或信息给 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);
}
}