首页 > 基础资料 博客日记
13、SpringMVC之异常处理器
2023-11-14 20:07:06基础资料围观447次
文章13、SpringMVC之异常处理器分享给大家,欢迎收藏Java资料网,专注分享技术知识
13.1、环境搭建
创建名为spring_mvc_exception的新module,过程参考9.1节和9.5节
13.1.1、创建错误提示页
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>错误页面</title>
</head>
<body>
<h1>errorPage.html</h1>
</body>
</html>
13.1.2、创建会发生异常的控制器方法
package online.liaojy.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @author liaojy
* @date 2023/11/13 - 19:48
*/
@Controller
public class TestController {
@RequestMapping("/test/hello")
public String testHello(){
// 在控制器方法中,制造一个数值运算异常
System.out.println(1/0);
return "success";
}
}
13.2、异常处理器概述
-
SpringMVC 提供了一个处理控制器方法执行异常的接口:HandlerExceptionResolver
-
HandlerExceptionResolver 接口的实现类有:DefaultHandlerExceptionResolver 和 SimpleMappingExceptionResolver
-
实际工作中,有时使用 SimpleMappingExceptionResolver 异常处理器,来对控制器方法出现的异常进行自定义异常处理
13.3、使用xml配置异常处理器
13.3.1、基本配置示例
<!--配置异常处理-->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<!--设置异常和错误提示页面的映射关系-->
<property name="exceptionMappings">
<props>
<!--
属性key:用来设置要处理的(在控制器方法执行过程中可能出现的)异常的全类名
<prop>标签体:用来设置当(控制器方法执行)发生异常时,要跳转到的逻辑视图
-->
<prop key="java.lang.ArithmeticException">errorPage</prop>
</props>
</property>
</bean>
13.3.2、基本示例测试效果
13.3.3、进阶配置示例
<!--属性value:设置共享到域对象中的异常信息的属性名-->
<property name="exceptionAttribute" value="exceptionMessage"></property>
异常信息:<p th:text="${exceptionMessage}"></p>
13.3.4、进阶示例测试效果
13.4、使用注解配置异常处理器
13.4.1、创建异常处理组件
package online.liaojy.controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
/**
* @author liaojy
* @date 2023/11/13 - 20:42
*/
// @ControllerAdvice 注解:用于将当前类标识为异常处理的组件
@ControllerAdvice
public class ExceptionController {
// @ExceptionHandler 注解:用来设置(该方法)要处理的异常
@ExceptionHandler(ArithmeticException.class)
public String testHandleException(Throwable ex,Model model){
// 设置共享到请求域中的异常信息的属性名
model.addAttribute("exceptionMessage",ex);
// 返回发生异常时的逻辑视图
return "errorPage";
}
}
13.4.2、测试效果
文章来源:https://www.cnblogs.com/Javaer1995/p/17824364.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- springboot~3.x项目中使用集成测试
- Java测试类、工具类与JavaBean对比解析
- SpringBoot-日志
- springboot~http2的支持
- 解疑释惑 - 日志体系之 slf4j + logback 组合(一)
- Web server failed to start. Port 8080 was already in use. 端口被占用
- Springboot 项目配置多数据源
- 伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 05
- 剑指offer-23、搜索⼆叉树的后序遍历序列
- 一个表示金额的数字是 100000000L,这是多少米?