前言:最近接手了一个比较让人头大的项目(供应商做到一半) 其中最让人头疼的是 Controller层的每一个方法都往外抛异常,自己又是一个菜鸟,而且时间比较短,采用了如下方式来做统一异常处理。
定义一个返回类:错误类型返回类
@Datapublic class RespData {private Boolean status=true;private int code=200;private String message;private Object data;}
@ControllerAdvice+@ExceptionHandler+@ResponseBody
实现404异常500异常处理(做的有好一点)
/*** 〈统一异常处理〉* * @author hupengda* @create /1/10*/@Slf4j@ControllerAdvicepublic class MyExceptionHandler {@ExceptionHandler(value = Exception.class)@ResponseBodypublic RespData defaultErrorHandler(HttpServletRequest request ,Exception ex)throws Exception{log.error("",ex);RespData respData = new RespData();respData.setMessage(ex.getMessage());if (ex instanceof NoHandlerFoundException){respData.setCode(404);}else {respData.setCode(500);}respData.setStatus(false);return respData;}}
application.yml配置
spring:mvc:throw-exception-if-no-handler-found: trueresources:add-mappings: false
最后访问结果
本人菜鸟一枚:希望大佬多多指点!