第9章 异常处理器

server/2024/11/27 4:47:28/

第九章 异常处理器

9.1 什么是异常处理器

Spring MVC在处理器方法执行过程中出现了异常,可以采用异常处理器进行应对。

一句话概括异常处理器作用:处理器方法执行过程中出现了异常,跳转到对应的视图,在视图上展示友好信息。

SpringMVC为异常处理提供了一个接口:HandlerExceptionResolver

核心方法是:resolveException

该方法用来编写具体的异常处理方案。返回值ModelAndView,表示异常处理完之后跳转到哪个视图。

HandlerExceptionResolver 接口有两个常用的默认实现:

  • DefaultHandlerExceptionResolver
  • SimpleMappingExceptionResolver

9.2 默认的异常处理器

DefaultHandlerExceptionResolver 是默认的异常处理器。

核心方法:

当请求方式和处理方式不同时,DefaultHandlerExceptionResolver的默认处理态度是:

9.3 自定义的异常处理器

自定义异常处理器需要使用:SimpleMappingExceptionResolver

自定义异常处理机制有两种语法:

  • 通过XML配置文件
  • 通过注解

9.3.1 配置文件方式

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"><property name="exceptionMappings"><props><!--用来指定出现异常后,跳转的视图--><prop key="java.lang.Exception">tip</prop></props></property><!--将异常信息存储到request域,value属性用来指定存储时的key。--><property name="exceptionAttribute" value="e"/>
</bean>

在视图页面上展示异常信息:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>出错了</title>
</head>
<body>
<h1>出错了,请联系管理员!</h1>
<div th:text="${e}"></div>
</body>
</html>

9.3.2 注解方式

@ControllerAdvice
public class ExceptionController {@ExceptionHandlerpublic String tip(Exception e, Model model){model.addAttribute("e", e);return "tip";}
}

http://www.ppmy.cn/server/145241.html

相关文章

Python 网络爬虫操作指南

网络爬虫是自动化获取互联网上信息的一种工具。它广泛应用于数据采集、分析以及实现信息聚合等众多领域。本文将为你提供一个完整的Python网络爬虫操作指南&#xff0c;帮助你从零开始学习并实现简单的网络爬虫。我们将涵盖基本的爬虫概念、Python环境配置、常用库介绍。 上传…

HAProxy面试题及参考答案(精选80道面试题)

目录 什么是 HAProxy? HAProxy 主要有哪些功能? HAProxy 的关键特性有哪些? HAProxy 的主要功能是什么? HAProxy 的作用是什么? 解释 HAProxy 在网络架构中的作用。 HAProxy 与负载均衡器之间的关系是什么? HAProxy 是如何实现负载均衡的? 阐述 HAProxy 的四层…

《硬件架构的艺术》笔记(七):处理字节顺序

介绍 本章主要介绍字节顺序的的基本规则。&#xff08;感觉偏软件了&#xff0c;不知道为啥那么会放进《硬件架构的艺术》这本书&#xff09;。 定义 字节顺序定义数据在计算机系统中的存储格式&#xff0c;描述存储器中的MSB和LSB的位置。对于数据始终以32位形式保存在存储器…

光伏电站项目-视频监控、微气象及安全警卫系统

一、项目背景 近年来&#xff0c;我国光伏发电持续快速发展。截止2019年5月装机总容量超过2.043亿千瓦&#xff0c;技术水平不断提升&#xff0c;成本显著降低&#xff0c;开发建设质量和消纳利用明显改善&#xff0c;在部分地区实现了家庭分布式光伏并入电网&#xff0c;为建…

【Mybatis】@Param注解 resultMap手动映射

文章目录 一、映射文件参数二、查询映射2-1 一对一2-2 一对多2-3 总结 一、映射文件参数 Param 注解官方文档解释 1、单个参数&#xff08;对象&#xff09;不使用注解 public int save(User user);<!-- 添加用户 --> <insert id"save" parameterType&quo…

嵌入式硬件设计:从概念到实现的全流程

嵌入式硬件设计是现代电子技术中一个至关重要的领域&#xff0c;涉及从硬件架构设计到硬件调试的各个方面。它为我们日常生活中的各类智能设备、家电、工业控制系统等提供了强大的支持。本文将介绍嵌入式硬件设计的基本流程、关键技术、常用工具以及常见的挑战和解决方案&#…

PyTorch2

Tensor的常见操作&#xff1a; 获取元素值&#xff1a; 注意&#xff1a; 和Tensor的维度没有关系&#xff0c;都可以取出来&#xff01; 如果有多个元素则报错&#xff1b; import torch def test002():data torch.tensor([18])print(data.item())pass if __name__ &qu…

设计模式之策略模式-工作实战总结与实现

文章目录 应用场景存在问题解决方案继续延伸 应用场景 假设有这样的业务场景&#xff0c;大数据系统把文件推送过来&#xff0c;根据不同类型采取不同的解析方式。多数的小伙伴就会写出以下的代码&#xff1a; public class Question {public static void main(String[] args…