Springboot中的全局异常与局部异常处理

文章讨论了SpringBoot项目中,当全局异常处理器和控制器方法的try-catch语句都处理同一异常时,try-catch语句优先执行,只有未被捕获的异常才会由全局处理器处理。
摘要由CSDN通过智能技术生成

如果在 Spring Boot 项目中定义了全局异常处理器来处理某个异常类,而同时在控制器的方法中添加了 try-catch 语句来处理同一种异常,那么异常会按照如下方式来处理:

  1. try-catch 语句处理

    • 如果controller中的方法中存在 try-catch 语句来捕获该异常,那么异常会首先被这个 try-catch 语句捕获,并按照你在 catch 块中定义的逻辑进行处理。这意味着控制权被转移到了 catch 块中,全局异常处理器不会介入。
  2. 全局异常处理器处理

    • 如果controller的方法中没有 try-catch 语句,或者存在但没有捕获到该异常,那么异常会被抛到方法的调用者,直到抛到 Spring MVC 的执行链上。在这个过程中,如果存在全局异常处理器来处理这个异常类,那么全局异常处理器将会捕获并处理这个异常,提供统一的异常处理逻辑。

总的来说,try-catch 语句优先于全局异常处理器,如果异常被 try-catch 语句捕获,那么全局异常处理器不会介入。如果异常没有被 try-catch 语句捕获,那么全局异常处理器会接管异常的处理。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值