异常处理器
一、概述
二、基于配置的异常处理
-
在springMVC中配置
<!-- 8.配置异常 --> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <!-- properties的键:表示处理器方法执行过程中出现的异常 properties的值:表示若出现指定异常时,设置一个新的视图名称,跳转到指定的页面 --> <prop key="java.lang.ArithmeticException">error</prop> </props> </property> <!-- 该属性可以设置一个键(此处这个键就是"ex"),用来存储我们的异常信息, 该信息默认被存储在请求作用域中 --> <property name="exceptionAttribute" value="ex"></property> </bean>
-
html
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>title</title> </head> <body> <h1>出现错误</h1> <!-- 共享到请求作用域中的数据 --> <p th:text="${ex}"></p> </body> </html>
-
controller
@Controller public class ExceptionController { @RequestMapping("/exceptionHandlerTest") public String exceptionHandlerTest() { // 如果出现异常,就会自动跳转到对应的错误页面 System.out.println(1/0); return "success"; } }
-
相应页面
三、基于注解的异常处理
-
使用到的两个注解
@ControllerAdvice
@ExceptionHandler(value = { })
-
创建异常处理的配置类
@ControllerAdvice public class HandlerExceptionController { // 如果出现该注解中的任意一个错误类,就会执行该方法作为控制器方法 @ExceptionHandler(value = {ArithmeticException.class,NullPointerException.class}) public String handlerExceptionTest(Exception ex, Model model) { model.addAttribute("ex", ex); return "error"; } }