SpringMVC中的异常处理器
12异常处理器
12.1基于配置的异常处理
HandlerExceptionResolver接口
接口实现类:
DefaultHandlerExceptionResolver和 SimpleMappingExceptionResolver
SpringMVC提供了自定义的异常处理器SimpleMappingExceptionResolver
使用方法:
直接在springmvc中声明使用
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<!--
key: 异常的类型
value: 映射到视图的名称
-->
<prop key="java.lang.ArithmeticException">error</prop>
<prop key="java.lang.NullPointerException">error</prop>
<prop key="java.lang.RuntimeException">error</prop>
<prop key="java.lang.Exception">error</prop>
</props>
</property>
<property name="exceptionAttribute" value="ex"/>
</bean>
当程序运行时出现上面所声明的异常类型时,就会执行那个异常所对应的视图页面,如java.lang.ArithmeticException就会跳转到error页面
12.2基于注解的异常处理
需要书写异常的配置类
/**
* @ControllerAdvice 1.全局异常处理
*/
@ControllerAdvice
public class ExceptionController {
@ExceptionHandler(ArithmeticException.class)
public String handleException(Throwable ex, Model model) {
// ex表示控制器所出现的异常
model.addAttribute("ex", ex);
return "error";
}
}
上面的类上使用了@ControllerAdvice注解,该注解是声明处理全局异常的,同时对于单个方法上使用了@ExceptionHandler注解,是用来声明具体的异常类型,然后用下面的方法来处理该异常。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?