SpringBoot全局捕捉异常
需要以下几个类:
- BaseError(接口)
- ErrorType(枚举)
- MyException
- ResultUtil
- Result
- GlobalExceptionHandler
- travelController
大概实现流程就是,travelController发生异常,被GlobalExceptionHandler捕获,然后通过工具类ResultUtil返回到前端
BasicError 代码
public interface BasicError {
/** 错误码*/
String getResultCode();
/** 错误描述*/
String getResultMsg();
}
ErrorType 代码
public enum ErrorType implements BasicError {
// 数据操作错误定义
SUCCESS("200", "成功!"),
BODY_NOT_MATCH("400","请求的数据格式不符!"),
SIGNATURE_NOT_MATCH("401","请求的数字签名不匹配!"),
NOT_FOUND("404", "未找到该资源!"),
INTERNAL_SERVER_ERROR("500", "服务器内部错误!"),
SERVER_BUSY("503","服务器正忙,请稍后再试!"),
NULL_POINT_ERROR("501","空指针异常!!");
/** 错误码 */
private String resultCode;
/** 错误描述 */
private String resultMsg;
ErrorType(String resultCode, String resultMsg) {
this.resultCode = resultCode;
this.resultMsg = resultMsg;
}
@Override
public String getResultCode() {
return resultCode;
}
@Override
public String getResultMsg() {
return resultMsg;
}
}
MyException 代码
public class MyException extends RuntimeException {
private static final long serialVersionUID = 1L;
/**
* 错误码
*/
protected String errorCode;
/**
* 错误信息
*/
protected String errorMsg;
public MyException() {
super();
}
public MyException(BasicError errorInfoInterface) {