SpringBoot 配置全局异常处理器捕获异常

最近看到项目中有满屏的try catch,每个接口都做了 try/catch 处理,而且一旦需要调整,所有的接口都需要修改一遍,非常不利于代码的维护,然后就想着配置一下全局异常处理器。

 全局异常处理

1.配置一下异常类

public class UserNotExitException extends Exception{

    private static final long serialVersionUID = 1L;

    private String errorCode;

    public UserNotExitException(String errorCode) {
        this(errorCode, "");
    }

    public UserNotExitException(String errorCode, String message) {
        super("errorCode: " + errorCode + ", message: " + message);
        this.errorCode = errorCode;
    }

    public String getErrorCode() {
        return this.errorCode;
    }
}

2.全局异常拦截器添加自定义异常类

@RestControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(UserNotExitException.class)
    public ResultInfo handleValidationException(UserNotExitException e) {
        return new ResultInfo(5000, e.getMessage());
    }
    @ExceptionHandler(DuplicateKeyException.class)
    public ResultInfo handlerDuplicateKeyException(DuplicateKeyException e) {
        return new ResultInfo(1000,e.getMessage());
    }
}

3.controller测试

@RestController
@RequestMapping("user")
public class DemoController {
    @GetMapping("/testException")
    public Integer testException(Integer a,Integer b) throws UserNotExitException {
        if(b==null){
            throw new UserNotExitException("1000","失败");
        }
        return a+b;
    }

    @GetMapping("/getUser")
    public boolean getUser() throws Exception {
        throw new UserNotExitException("5000","请求用户失败");
    }

4.返回值类

@Data
public class ResultInfo {
    public final static String FAILED = "1001";

    private Integer code;
    private String message;

    public ResultInfo(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

}

5.postman测试结果

6.项目结构

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值