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

标题: 13、SpringMVC之异常处理器 [打印本页]

作者: 饭宝    时间: 2023-12-20 00:42
标题: 13、SpringMVC之异常处理器
13.1、环境搭建

创建名为spring_mvc_exception的新module,过程参考9.1节和9.5节
13.1.1、创建错误提示页

  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>errorPage.html</h1>
  9. </body>
  10. </html>
复制代码
13.1.2、创建会发生异常的控制器方法

  1. package online.liaojy.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. /**
  5. * @author liaojy
  6. * @date 2023/11/13 - 19:48
  7. */
  8. @Controller
  9. public class TestController {
  10.     @RequestMapping("/test/hello")
  11.     public String testHello(){
  12.         // 在控制器方法中,制造一个数值运算异常
  13.         System.out.println(1/0);
  14.         return "success";
  15.     }
  16. }
复制代码
13.2、异常处理器概述

13.3、使用xml配置异常处理器

13.3.1、基本配置示例

  1.    
  2.     <bean >
  3.         
  4.         <property name="exceptionMappings">
  5.             <props>
  6.         
  7.         <property name="exceptionAttribute" value="exceptionMessage"></property>
  8.         
  9.         <property name="exceptionAttribute" value="exceptionMessage"></property><prop key="java.lang.ArithmeticException">errorPage</prop>
  10.             </props>
  11.         </property>
  12.     </bean>
复制代码
13.3.2、基本示例测试效果



13.3.3、进阶配置示例

  1.         
  2.         <property name="exceptionAttribute" value="exceptionMessage"></property>
复制代码
  1. 异常信息:<p th:text="${exceptionMessage}"></p>
复制代码
13.3.4、进阶示例测试效果



13.4、使用注解配置异常处理器

13.4.1、创建异常处理组件

  1. package online.liaojy.controller;
  2. import org.springframework.ui.Model;
  3. import org.springframework.web.bind.annotation.ControllerAdvice;
  4. import org.springframework.web.bind.annotation.ExceptionHandler;
  5. /**
  6. * @author liaojy
  7. * @date 2023/11/13 - 20:42
  8. */
  9. // @ControllerAdvice 注解:用于将当前类标识为异常处理的组件
  10. @ControllerAdvice
  11. public class ExceptionController {
  12.     // @ExceptionHandler 注解:用来设置(该方法)要处理的异常
  13.     @ExceptionHandler(ArithmeticException.class)
  14.     public String testHandleException(Throwable ex,Model model){
  15.         // 设置共享到请求域中的异常信息的属性名
  16.         model.addAttribute("exceptionMessage",ex);
  17.         // 返回发生异常时的逻辑视图
  18.         return "errorPage";
  19.     }
  20. }
复制代码
13.4.2、测试效果




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




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