1、参数不满足条件异常类定义
/***@description:参数不满足异常处理*@author*@date: 2019年8月10日 上午14:17:56*/
public class PromptException extends RuntimeException {private static final long serialVersionUID = 1L;private int code;private String msg;public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}/*** @param code* @param msg*/public PromptException(int code, String msg) {super();this.code = code;this.msg = msg;}
}
2、不满业务条件异常类定义
/***@description:不满足业务条件异常*@author*@date: 2019年8月10日 上午14:17:56*/
public class BusException extends RuntimeException {private static final long serialVersionUID = 1L;private int code;private String msg;public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}/*** @param code* @param msg*/public BusException(int code, String msg) {super();this.code = code;this.msg = msg;}
}
3、全局异常处理类
/*** @Title: GloabException* @Description:* @author: liuchuanhong* @date 2020年9月25日 下午2:56:09*/
@ControllerAdvice
@ResponseBody
@Slf4j
public class GloabException {@ExceptionHandler(value = Exception.class)public String hanleException(Exception e) {if (e instanceof BusException) {BusException bus = (BusException) e;Result res = ResultUtils.failed(bus.getCode(), bus.getMsg());return JSON.toJSONString(res);} else if (e instanceof PromptException) {PromptException bus = (PromptException) e;Result res = ResultUtils.failed(bus.getCode(), bus.getMsg());return JSON.toJSONString(res);} else {e.printStackTrace();log.error("异常错误", e.getMessage());Result res = ResultUtils.failed(ResultEnum.FAIL.getCode(), ResultEnum.FAIL.getDesc());return JSON.toJSONString(res);}}@ExceptionHandler({ConversionNotSupportedException.class, HttpMessageNotWritableException.class })public String server500(RuntimeException ex) {Result res = ResultUtils.failed(ResultEnum.FAIL.getCode(), ResultEnum.FAIL.getDesc());return JSON.toJSONString(res);}// 405错误@ExceptionHandler({ HttpRequestMethodNotSupportedException.class })public String request405(HttpRequestMethodNotSupportedException ex) {Result res = ResultUtils.failed(ResultEnum.FAIL405.getCode(), ResultEnum.FAIL405.getDesc());return JSON.toJSONString(res);}// 400错误@ExceptionHandler({ MissingServletRequestParameterException.class })public String requestMissingServletRequest(MissingServletRequestParameterException ex) {Result res = ResultUtils.failed(ResultEnum.FAIL400.getCode(), ResultEnum.FAIL400.getDesc());return JSON.toJSONString(res);}// 404错误@ExceptionHandler(NoHandlerFoundException.class)@ResponseStatus(value = HttpStatus.NOT_FOUND)public String requestMissingServletRequest(NoHandlerFoundException ex) {Result res = ResultUtils.failed(ResultEnum.FAIL404.getCode(), ResultEnum.FAIL404.getDesc());return JSON.toJSONString(res);}}
注:需要配置MVC不拦截404等异常
mvc:throw-exception-if-no-handler-found: true resources:add-mappings: false