ToB企服应用市场:ToB评测及商务社交产业平台

标题: SpringMVC之异常处理器的使用 [打印本页]

作者: tsx81428    时间: 2024-4-17 18:13
标题: SpringMVC之异常处理器的使用
基于xml文件配置异常处理器

配置异常处理器
  1. <bean >
  2.        
  3.         <property name="order" value="1"/>
  4.        
  5.         <property name="exceptionMappings">
  6.                 <props>
  7.                        
  8.                         <prop key="java.lang.ArithmeticException">error</prop>
  9.                         <prop key="java.lang.NullPointerException">error</prop>
  10.                 </props>
  11.         </property>
  12.        
  13.         <property name="exceptionAttribute" value="ex"/>
  14. </bean>
复制代码
创建视图
  1. <a th:target="_blank" href="https://www.cnblogs.com/@{/test/error}">测试异常处理器</a><br/>
复制代码
  1. <!DOCTYPE html>
  2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>错误</title>
  6. </head>
  7. <body>
  8. <h1>error.html</h1>
  9. <hr/>
  10. <a th:text="${ex}"></a>
  11. </body>
  12. </html>
复制代码
编写控制器方法
  1.     @GetMapping("/test/error")
  2.     public String testError() {
  3.        //出现异常
  4.         System.out.println(10/0);
  5.         return "success";
  6.     }
复制代码
测试
发送访问/test/error控制器方法的请求,控制器方法执行过程中出现异常处理器中配置的异常策略,跳转到指定异常视图。
基于注解配置异常处理器
  1. @ControllerAdvice //将当前类标识为异常处理的组件
  2. public class ExceptionController {
  3.     //@ExceptionHandler用于设置所标识方法处理的异常
  4.     //ex表示当前请求处理中出现的异常对象
  5.     @ExceptionHandler(value = {ArithmeticException.class})
  6.     public ModelAndView handleArithmeticException(Exception ex) {
  7.         ModelAndView mad = new ModelAndView();
  8.         mad.addObject("ex",ex);
  9.         mad.setViewName("error");
  10.         return mad;
  11.     }
  12.     @ExceptionHandler(value = {NullPointerException.class})
  13.     public String handleNullPointerException(Exception ex,Model model) {
  14.         model.addAttribute("ex",ex);
  15.         return "error";
  16.     }
  17. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4