行业资讯 2025年08月6日
0 收藏 0 点赞 542 浏览 1016 个字
摘要 :

SpringMVC处理异常的顶级接口:HandlerExceptionResolver,该接口的每个实现类都是处理异常的一种方式: 1)ExceptionHandlerExceptionResolver:该子类主要提供了@Excepti……

SpringMVC处理异常的顶级接口:HandlerExceptionResolver,该接口的每个实现类都是处理异常的一种方式:
1)ExceptionHandlerExceptionResolver:该子类主要提供了@ExceptionHandler注解,并通过该注解处理异常
a)@ExceptionHandler
controller测试方法:
异常处理——SpringMVC框架系列教程(13)
controller处理方法:
异常处理——SpringMVC框架系列教程(13)
测试:
异常处理——SpringMVC框架系列教程(13)
b)如果一个方法处理多个异常,可以这样写:
异常处理——SpringMVC框架系列教程(13)
@ExceptionHandler注解方法的参数,只能是异常类型的参数或其子类,不能是其他类型的参数,如果有其他类型的参数,则异常不会处理。如果想将异常带回页面显示,可以使用ModelAndView带回。
异常处理——SpringMVC框架系列教程(13)
c)异常处理优先级
异常处理——SpringMVC框架系列教程(13)
如果这个类中出现了ArithmeticException异常,则第一个方法会捕获到。
优先级:就近原则。

d)@ControllerAdvice
@ExceptionHandler只能捕获当前类中的异常,如果异常产生方法和处理方法不在一个类中,该如何?
可以自定义异常处理类,在类上使用@ControllerAdvice注解,在方法上使用@ExceptionHandler注解。
注意:如果自定义异常处理类不是放在controller包中,需要将该包加入到springmvc.xml的包扫描注解中。
异常处理——SpringMVC框架系列教程(13)

2)ResponseStatusExceptionResolver:该子类用于自定义异常显示页面,提供了@ResponseStatus注解
可以指定状态码和原因
演示:
i.把之前的异常处理代码都注释掉,防止被拦截处理

ii.自定义exception,加上@ResponseStatus注解,只要有方法排除此异常,状态码和原因就是这里定义的。
异常处理——SpringMVC框架系列教程(13)
iii.代码
异常处理——SpringMVC框架系列教程(13)
iiii.测试
异常处理——SpringMVC框架系列教程(13)
e)@ResponseStatus注解也可以使用在方法上
代码:
异常处理——SpringMVC框架系列教程(13)
测试:
异常处理——SpringMVC框架系列教程(13)
3)DefaultHandlerExceptionResolver:
SpringMVC在一些常见的异常(比如300,404,500)基础之上新增了一些异常,例如 405
(在RequestMapping要求POST请求,却使用get请求时会出现)

4)SimpleMappingExceptionResolver
通过配置来实现异常处理
演示:
代码:
异常处理——SpringMVC框架系列教程(13)
配置(prop可以指定捕获多个):
异常处理——SpringMVC框架系列教程(13)
测试:
异常处理——SpringMVC框架系列教程(13)
如果想将捕获到异常对象回传,可以使用一个属性(如果不配置,默认值就是exception):
异常处理——SpringMVC框架系列教程(13)

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/7673.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号