1.自定义异常,继承RuntimeException
@Data
public class MyException extends RuntimeException {
private Integer code;
public MyException(String msg) {
super(msg);
}
public MyException(Integer code, String msg) {
super(msg);
this.code = code;
}
}
2.同一异常处理,注意@ExceptionHandler要和@ControllerAdvice一起使用
@ControllerAdvice
@Slf4j
public class CustomResponseExceptionHandler {
private final String WEB_NOTE = "系统错误,请联系管理员修复";
/**
* 全局异常捕捉处理
*
* @param ex 全局异常
* @return
*/
@ResponseBody
@ExceptionHandler(value = Exception.class)
public Result<String> errorHandler(Exception ex) {
String message = ex.getMessage();
return new Result<>(500, message, WEB_NOTE);
}
/**
* 拦截捕捉自定义异常 MyException.class
*
* @param ex 自定义异常
* @return
*/
@ResponseBody
@ExceptionHandler(value = MyException.class)
public Result<String> myErrorHandler(MyException ex) {
String message = ex.getMessage();
Integer code = ex.getCode();
return new Result<>(null == code ? 500 : code, message, WEB_NOTE);
}
}