SpringMVC中全局异常处理方式
创建状态码枚举类,用于自定义异常返回状态:
public enum ServiceCode {
OK(2000),
ERR_BAD_REQUEST(4000),//错误请求
ERR_NOT_FOUND(4040),//没有发现
ERR_UNAUTHORIZED(4010),//未经授权
ERR_UNAUTHORIZED_DISABLED(4011),//未经授权禁止
ERR_FORBIDDEN(4030),//被禁止的
ERR_CONFLICT(4090),//冲突
ERR_INSERT(5000),//插入异常
ERR_DELETE(5010),//删除异常
ERR_UPDATE(5020),//更新异常
ERR_SELECT(5030),//搜索异常
ERR_JWT_EXPIRED(6000),//jwt过期
ERR_JWT_MALFORMED(6010),//jwt格式不对
ERR_JWT_SIGNATURE(6020),//jwl签名错误
ERR_UNKNOWN(9999);//未知错误
private Integer value;
ServiceCode(Integer value) {
this.value = value;
}
public Integer getValue() {
return value;
}
}
自定义异常类:
public class ServiceException extends RuntimeException {
private ServiceCode serviceCode;
public ServiceException(ServiceCode serviceCode, String message) {
super(message);
this.serviceCode = serviceCode;
}
public ServiceCode getServiceCode() {
return serviceCode;
}
}
全局统一异常处理类
@RestControllerAdvice //可以将此类中特定方法作用于整个controller
public class GlobalExceptionHandler {
public GlobalExceptionHandler() {
log.debug(“创建全局异常处理器对象:GlobalExceptionHandler”);
}
@ExceptionHandler//统一异常处理,若只想某个类中单独共同处理,可以直接使用该注解到某个统一异常处理方法中,如下面方法为统一异常处理方法。
public xxx handleServiceException(ServiceException e) {
//ServiceException e是多个方法执行时抛出相同的异常类,在这里进行统一处理
log.warn(“程序运行过程中出现ServiceException,将统一处理!”);
log.warn(“异常信息:{}”, e.getMessage());
return ;
}
}
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
7. 本站有不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!
66源码网 » SpringMVC中全局异常处理方式