spring-boot三层架构模式中如何对异常进行处理

在系统运行过程中难免会有异常,那么如何出处理这些异常呢?

保证一些异常出现时,不会导致系统崩溃

我们需要系统出现异常时,反馈给用户或者运维人员 而不是直接崩溃

解决办法:

我们让异常一层一层的往出抛异常 最后使用aop的思想在最外层定义一个类来集中处理这些异常

@ControllerAdvice(annotations = {RestController.class})
@ResponseBody
@Slf4j
public class GlobalException {

    @ExceptionHandler(SQLIntegrityConstraintViolationException.class)
    public R<String> handSqlException(SQLIntegrityConstraintViolationException e){
        log.error(e.getMessage());

        if (e.getMessage().contains("Duplicate entry")){
            return R.error("该账号已被占用");
        }
        return R.error("未知错误");
    }


    @ExceptionHandler(CustomException.class)
    public R<String> handSqlException(CustomException e){
        log.error(e.getMessage());
        return R.error(e.getMessage());
    }
}

@ControllerAdvice(annotations = {RestController.class})对那些所有的restcontroller进行aop

@ExceptionHandler(SQLIntegrityConstraintViolationException.class)

申明这个方法处理那些请求

在做异常中我们要可能出现的异常定义出来 并处理

对其他未知异常也要用Exception进行捕获 保证系统不因异常而停止

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值