在 SpringMVC 中,異常處理是一個非常重要的功能,它可以讓你優雅地處理程序拋出的各種異常,向用戶展示友好的提示,而不是顯示一堆報錯信息(如 500 頁面)。
一、SpringMVC的異常處理器
返回的是ModelAndView,意味著,可以在遇到指定異常的時候,跳轉到指定的頁面。
?
二、SpringMVC 異常處理器的二種方式
3-1、基于配置的異常處理器
示例1:
在springMVC.xml中配置異常處理器
<!-- 配置異常處理器 --><bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"><property name="exceptionMappings"><props><!-- 算數異常,跳轉到error.html頁面 --><prop key="java.lang.ArithmeticException">error</prop></props></property></bean>
編寫測試類:
@RequestMapping("/testException")public String testException(){System.out.println(1/0);return "success";}
示例2:在error頁面打印異常信息
<!-- 配置異常處理器 --><bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"><property name="exceptionMappings"><props><!-- 算數異常,跳轉到error.html頁面 --><prop key="java.lang.ArithmeticException">error</prop></props></property><!-- 想要在error.html頁面打印異常信息 --><!-- 異常信息默認存儲在請求域中,key就是我們自定義的ex,直接在error.html頁面,用這個key,輸出異常信息 --><property name="exceptionAttribute" value="ex"></property></bean>
<body><h1>ArithmeticException error</h1><p th:text="${ex}"></p>
</body>
【注意】:
<property name="xxxx">,里面的name的值是固定的!
3-2、基于注解的異常處理
示例:
@ControllerAdvice其實就是@Controller的擴展注解!