SpringBoot实现统一异常处理

实现介绍

SpringBoot中@ControllerAdvice与@ExceptionHandler的配合使用,可以实现controller层的异常处理功能

实现代码

@Slf4j
@ControllerAdvice
public class GlobalExceptionHandler {

    @ResponseBody
    @ExceptionHandler(Exception.class)
    public Result exception(Exception e){
        log.error(e.getMessage());
        e.printStackTrace();
        return Result.error().code(ResultCode.INTERNAL_ERROR.getCode()).message(ResultCode.INTERNAL_ERROR.getMessage());
    }

    @ResponseBody
    @ExceptionHandler(SystemException.class)
    public Result systemException(SystemException e){
        log.error(e.getMessage());
        e.printStackTrace();
        return Result.error().code(e.getCode()).message(e.getMessage());
    }
}

注解解释

@ExceptionHandler

@ExceptionHandler可以捕获到controller中指定的异常并进行处理

  • 写在普通的controller中:只能识别并处理该controller中的指定异常

  • 写在@ControllerAdvice注解的类中:可以识别并处理所有@ControllerAdvice覆盖的controller(默认是覆盖所有)中的指定异常

@ControllerAdvice

@ControllerAdvice默认是覆盖所有controller,但也可以通过设置只覆盖指定的controller

  • 只想让@ControllerAdvice覆盖指定的包
@ControllerAdvice("com.wq.property")
  • 只想让@ControllerAdvice覆盖指定的controller类
@ControllerAdvice(basePackageClasses = ArchivesOwnerInfoImportController.class)
  • 想让@ControllerAdvice覆盖指定的几个controller类
@ControllerAdvice(assignableTypes ={ArchivesOwnerInfoImportController.class, ArchivesOwnerInfoSummaryController.class})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值