@RestControllerAdvice
public class ExceptionAdvice {
private static Logger logger = LoggerFactory.getLogger(ExceptionAdvice.class);
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ExceptionHandler(HttpMessageNotReadableException.class)
public Result messageNotReadable(SQLException exception){
SQLException sqlException = (SQLException)exception.getCause();
logger.error("SQL异常" + sqlException);
return Result.fail("SQL错误");
}
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(HttpMessageNotReadableException.class)
public Result messageNotReadable(HttpMessageNotReadableException exception){
InvalidFormatException formatException = (InvalidFormatException)exception.getCause();
List<JsonMappingException.Reference> path = formatException.getPath();
String fieldName = "";
for (JsonMappingException.Reference reference : path){
fieldName = reference.getFieldName();
}
logger.error("参数不匹配" + exception);
return Result.fail(fieldName + "参数类型不匹配");
}
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ExceptionHandler(Exception.class)
public Result all(Exception e){
logger.error("异常", e);
return Result.fail("维护中");
}
}