- 自定义GlobalException
public class GlobalException extends RuntimeException{
private String message;
private String code;
/**
* 默认构造方法,根据异常信息 构建一个异常实例对象
* @param message 异常信息
*/
public GlobalException(String message) {
super(message);
this.message = message;
}
/**
* 根据异常信息、响应状态码构建 一个异常实例对象
* @param message 异常信息
* @param code 响应状态码
*/
public GlobalException(String message, String code) {
super(message);
this.message = message;
this.code = code;
}
/**
* 根据异常信息,异常对象构建 一个异常实例对象
* @param message 异常信息
* @param e 异常对象
*/
public GlobalException(String message, Throwable e) {
super(message, e);
this.message = message;
}
/**
* 根据异常信息,响应状态码,异常对象构建 一个异常实例对象
* @param message 异常信息
* @param code 响应状态码
* @param e 异常对象
*/
public GlobalException(String message, String code, Throwable e) {
super(message, e);
this.message = message;
this.code = code;
}
/**
*CodeEnum为自定义错误信息枚举
*/
public GlobalException(CodeEnum codeEnum){
super(codeEnum.getMsg());
this.message = codeEnum.getMsg();
this.code = codeEnum.getCode();
}
@Override
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
- 自定义GlobalExceptionHandler
@RestControllerAdvice
public class GlobalExceptionHandler {
private Logger logger = LoggerFactory.getLogger(getClass());
/**
* 处理 Exception 异常
* @param e 异常
* @return 处理结果
*/
@ExceptionHandler(Exception.class)
public Response handlerException(Exception e) {
logger.error(e.getMessage(), e);
return Response.error("系统异常");
}
/**
* 处理空指针异常
* @param e 异常
* @return 处理结果
*/
@ExceptionHandler(NullPointerException.class)
public Response handlerNullPointerException(NullPointerException e) {
logger.error(e.getMessage(), e);
return Response.error("空指针异常");
}
/**
* 处理自定义异常
* @param globalException 异常
* @return 处理结果
*/
@ExceptionHandler(GlobalException.class)
public Response handlerGlobalException(GlobalException globalException) {
logger.error(globalException.getMessage(), globalException.getCode(),globalException);
return Response.error(globalException.getCode(),globalException.getMessage());
}
}
- 抛出自定义异常
