16|Spring Exception 常见错误
傅健
你好,我是傅健。
今天,我们来学习 Spring 的异常处理机制。Spring 提供了一套健全的异常处理框架,以便我们在开发应用的时候对异常进行处理。但是,我们也会在使用的时候遇到一些麻烦,接下来我将通过两个典型的错误案例,带着你结合源码进行深入了解。
案例 1:小心过滤器异常
为了方便讲解,我们还是沿用之前在事务处理中用到的学生注册的案例,来讨论异常处理的问题:
为了保证安全,这里需要给请求加一个保护,通过验证 Token 的方式来验证请求的合法性。这个 Token 需要在每次发送请求的时候带在请求的 header 中,header 的 key 是 Token。
为了校验这个 Token,我们引入了一个 Filter 来处理这个校验工作,这里我使用了一个最简单的 Token:111111。
当 Token 校验失败时,就会抛出一个自定义的 NotAllowException,交由 Spring 处理:
NotAllowException 就是一个简单的 RuntimeException 的子类:
同时,新增了一个 RestControllerAdvice 来处理这个异常,处理方式也很简单,就是返回一个 403 的 resultCode:
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了Spring异常处理机制,通过具体案例和技术分析,全面介绍了Spring框架中的异常处理原理和解决方案。首先介绍了一个关于过滤器异常处理的案例,引出了异常处理的问题。随后详细解析了Spring Web对异常统一处理的逻辑,包括ControllerAdvice的加载和异常处理器的初始化过程。最后,提出了问题修正方案,通过对Filter进行改造,手动捕获异常并交给HandlerExceptionResolver处理,最终解决了异常处理问题。 文章还深入分析了Spring Web中的异常处理机制,包括DispatcherServlet的核心处理代码和WebMvcConfigurationSupport的配置类。通过具体案例的介绍,读者可以更好地理解Spring MVC的异常处理机制,以及如何解决在实际生产环境中遇到的问题。 总的来说,本文通过深入的技术分析和案例讲解,为读者提供了对Spring异常处理机制的全面了解,对想深入了解Spring异常处理机制的读者具有很高的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Spring 编程常见错误 50 例》,新⼈⾸单¥59
《Spring 编程常见错误 50 例》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(4)
- 最新
- 精选
- 黑白颠倒学习这章之前需要先了解一下Spring处理异常的几种方式,这里推荐一篇文章。https://blog.csdn.net/qq_24598601/article/details/89243914?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.control&spm=1001.2101.3001.42422021-08-264
- 黑白颠倒第一个没怎么看得懂。。。2021-08-261
- 阿波罗@ExceptionHandler(NoHandlerFoundException.class)这个按照老师的说明404不生效的直接原因找到了,因为服务的启动类加了@EnableAdminServer,去掉这个注解就可以了,加上就不好使了,2022-01-04
- ifelse收货很多,原理,流程2021-11-08
收起评论