2020-11-13

基于spring 的统一异常处理
将业务执行过程中会产生的各种异常,对其进行统一处理是所有web项目的通用需求,spring 作为最流行的web框架,自然是提供了解决方案。

spring 的统一异常处理
在Spring 3.2中,新增了@ControllerAdvice、@RestControllerAdvice 注解来增强我们 controller 层的。

在标注了 @ControllerAdvice、@RestControllerAdvice 注解的类中,配合使用以下注解可以实现不同的功能

@ExceptionHandler : 全局异常处理
@InitBinder : 全局数据绑定
@ModelAttribute : 全局数据预处理
对于全局异常处理,具体来说就是,通过创建 @ControllerAdvice 类,并自定义一个 @ExceptionHandler 方法,来统一处理。

实例
这里提供一种常见的设计,供大家参考。

主要分为以下几个部分

自定义全局状态码
自定义异常类
自定义业务结果类
自定义统一异常处理类
使用自定义的异常
自定义全局状态码
每一个业务状态都对于一个状态码

自定义异常类
每一种异常都对于一种ApplicationEnum

自定义业务结果类
自定义业务结果类,来统一所有 controller 层的返回值

为了方便使用,再创建一个 SuccessResult 和一个 FailResult

自定义异常处理类

如果一个异常能匹配多个 @ExceptionHandler 时,选择匹配深度最小的Exception(即最匹配的Exception)

参考文章

使用自定义的异常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值