自定义异常
/** * 自定义业务异常 */ public class BusinessException extends RuntimeException { public BusinessException() { } public BusinessException(String message) { super(message); } }
/**
* 自定义业务异常
*/
public class BusinessException extends RuntimeException {
public BusinessException() {
}
public BusinessException(String message) {
super(message);
}
}
全局异常处理
/** * 全局异常处理类 */ //@ControllerAdvice @RestControllerAdvice //符合注解:RestController类的增强 - 可以指定包 public class GlobalExceptionHandler { //捕获业务异常 //捕捉BusinessException异常: 应用到所有@RequestMapping的方法上,在其抛出BusinessException时执行 @ExceptionHandler(BusinessException.class) public AjaxResult globleException(BusinessException e){ e.printStackTrace(); return AjaxResult.me().setSuccess(false).setMessage(e.getMessage()); } //捕获非业务异常 //捕捉其他异常 @ExceptionHandler(Exception.class) public AjaxResult exception(Exception e){ e.printStackTrace(); return AjaxResult.me().setSuccess(false).setMessage("系统内部异常"); } }
/**
* 全局异常处理类
*/
//@ControllerAdvice
@RestControllerAdvice //符合注解:RestController类的增强 - 可以指定包
public class GlobalExceptionHandler {
//捕获业务异常
//捕捉BusinessException异常: 应用到所有@RequestMapping的方法上,在其抛出BusinessException时执行
@ExceptionHandler(BusinessException.class)
public AjaxResult globleException(BusinessException e){
e.printStackTrace();
return AjaxResult.me().setSuccess(false).setMessage(e.getMessage());
}
//捕获非业务异常
//捕捉其他异常
@ExceptionHandler(Exception.class)
public AjaxResult exception(Exception e){
e.printStackTrace();
return AjaxResult.me().setSuccess(false).setMessage("系统内部异常");
}
}
错误码封装
/** * 自定义错误码:统一处理异常响应信息 */ public enum ErrorCode { SYSTEM_ERROR("1001","系统内部异常"); //自定义的错误码尽量往1000以上去写 //错误码 private String code; //错误信息 private String message; ErrorCode(String code, String message) { this.code = code; this.message = message; } public String getCode() { return code; } public String getMessage() { return message+"["+code+"]"; } }
/**
* 自定义错误码:统一处理异常响应信息
*/
public enum ErrorCode {
SYSTEM_ERROR("1001","系统内部异常"); //自定义的错误码尽量往1000以上去写
//错误码
private String code;
//错误信息
private String message;
ErrorCode(String code, String message) {
this.code = code;
this.message = message;
}
public String getCode() {
return code;
}
public String getMessage() {
return message+"["+code+"]";
}
}