Java 如何避免声纳';s";“保存堆栈跟踪”;违反
给出以下代码的主要冲突错误(“保留堆栈跟踪”)。以下方法用于引发异常。我应该采取什么措施来克服这种违规行为Java 如何避免声纳';s";“保存堆栈跟踪”;违反,java,Java,给出以下代码的主要冲突错误(“保留堆栈跟踪”)。以下方法用于引发异常。我应该采取什么措施来克服这种违规行为 public void exceptionHandler(String exception) throws PhDashException { String exceptionMsg = exception.replaceAll("-", "_"); ExceptionPhDash pHDashExceptionMapper = new ExceptionPhDash(
public void exceptionHandler(String exception) throws PhDashException {
String exceptionMsg = exception.replaceAll("-", "_");
ExceptionPhDash pHDashExceptionMapper = new ExceptionPhDash();
try {
pHDashExceptionMapper = new ObjectMapper().readValue(exceptionMsg, ExceptionPhDash.class);
} catch (JsonParseException e) {
LOGGER.info(e.getMessage());
} catch (JsonMappingException e) {
LOGGER.info(e.getMessage());
} catch (IOException e) {
LOGGER.info(e.getMessage());
}
throw new PhDashException(pHDashExceptionMapper.getMessage());
}
您已经记录了每个异常;就保存信息而言,这应该足够了,如下所示
LOGGER.info("Unexpected Exception has occurred", e);
或者,如果可以,您应该重新抛出PhDashException
,因为就保存信息而言,您应该足够了
throw new PhDashException(pHDashExceptionMapper);
尝试将整个异常传递给记录器,而不是它的消息。@Niks Tyagi-但最佳做法是避免printStackTrace()?对吗?是,更新为LOGGER.info(异常),但PhDashException使用字符串参数。pHDashExceptionMapper是一个自定义的异常类<代码>公共类PhDashException扩展了异常{/***序列Id.*/private static final long serialVersionUID=-4859242009502871357L;公共PhDashException(String errorMsg){super(errorMsg);}}@AmilaIddamalgoda:所以,正确地记录它