7.学习springmvc的异常处理
一.页面的异常处理流程

二.建立项目springmvc04_exception
1.编写index.jsp页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body> <h3>异常测试</h3> <a href="user/testException">异常测试</a> </body>
</html>
2.编写控制器方法:
编写UserController:

@Controller
@RequestMapping("/user")
public class UserController { @RequestMapping("/testException")
public String testException() throws SysException { System.out.println("testException执行了..."); //模拟异常
try {
int a = 10 / 0;
} catch (Exception e) {
//控制台打印异常信息
e.printStackTrace(); //抛出自定义异常信息
throw new SysException("testException执行出现异常....");
}
return "success";
}
}
编写异常处理类SysException:

/**
* 自定义异常处理类
* @author USTC_WZH
* @create 2019-12-04 0:03
*/
public class SysException extends Exception { //存储提示信息
private String message; public SysException(String message) {
this.message = message;
} @Override
public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
}
}
编写异常处理器SysExceptionResolver:

/**
* 异常处理器
* @author USTC_WZH
* @create 2019-12-04 0:07
*/
public class SysExceptionResolver implements HandlerExceptionResolver { /**
* 处理异常业务逻辑
* @param httpServletRequest
* @param httpServletResponse
* @param o
* @param e
* @return
*/
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) { //获得到异常对象
SysException syse = null; if (e instanceof SysException){
syse = (SysException) e;
}else {
e = new SysException("系统正在维护...");
} //创建ModelAndView对象存储和显示数据
ModelAndView mv = new ModelAndView(); mv.addObject("errorMsg",e.getMessage());
mv.setViewName("error"); return mv;
}
}
3.配置springmvc.xml的异常处理器:

<!--配置异常处理器-->
<bean id="sysExceptionResolver" class="edu.ustc.exception.SysExceptionResolver"></bean>
4.编写错误展示页面error.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>error</title>
</head>
<body> <h3>error页面</h3> ${errorMsg}
</body>
</html>
完成并展示:



7.学习springmvc的异常处理的更多相关文章
- SpringBoot源码学习系列之异常处理自动配置
SpringBoot源码学习系列之异常处理自动配置 1.源码学习 先给个SpringBoot中的异常例子,假如访问一个错误链接,让其返回404页面 在浏览器访问: 而在其它的客户端软件,比如postm ...
- 学习SpringMVC——如何获取请求参数
@RequestParam,你一定见过:@PathVariable,你肯定也知道:@QueryParam,你怎么会不晓得?!还有你熟悉的他(@CookieValue)!她(@ModelAndView) ...
- WCF 学习笔记之异常处理
WCF 学习笔记之异常处理 1:WCF异常在配置文件 <configuration> <system.serviceModel> <behaviors> <s ...
- SpringMVC 全局异常处理
在 JavaEE 项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的.不可预知的异常需要处理.每个过程都单独处理异常,系统的代码耦合度 ...
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
WebAPI调用笔记 前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...
- springmvc 中异常处理
springmvc 中异常处理常见三种处理方式: 1:SimpleMappingExceptionResolver处理的是处理器方法里面出现的异常 2 3.自定义异常处理器:处理的是处理器方法里面出现 ...
- 2.学习SpringMVC注解入门篇
一.SpringMVC执行流程 . 二.创建项目学习SpringMVC注解 按照我之前的SpringMVC创建项目,首先创建一个项目springmvc01,配置好pom.xml,web.xml,spr ...
- 萌新学习SpringMVC
前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 这篇SpringMVC被催了很久了,这阵子由于做 ...
- springMVC学习(9)-全局异常处理
一.异常处理思路: 系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减少运行时异常的发生. 系统的da ...
随机推荐
- Redis高级功能-1、高并发基本概述
1.可能的问题 要将redis运用到工程项目中,只使用一台redis是万万不能的,原因如下: (1)从结构上,单个redis服务器会发生单点故障,并且一台服务器需要处理所有的请求负载,压力较大. (2 ...
- 解决 win10 家庭版环境下 MySQL 的ODBC驱动下载及安装
目录 写在前面 下载安装 1.首先,我们需要去官网下载ODBC驱动. 配置 1.打开控制面板.查看方式:选择大图标. 2.选择管理工具的ODBC 数据源(64 位). 3.在驱动程序目录下.我们可以看 ...
- codeforces#566(Div.2)B
B.Plus from Picture You have a given picture with size w×hw×h. Determine if the given picture has a ...
- Ansible--Ansible之Playbook
Ansible之Playbook Playbook介绍 playbook参考文档 Playbook与ad-hoc相比,是一种完全不同的运用ansible的方式,类似与saltstack的state状态 ...
- 【开发笔记】-CentOS配置Java环境变量
如果开发java应用,经常需要配置JAVA_HOME路径,如果是通过yum安装的jdk(一般系统会自带open-jdk),下面讲述配置过程: A 定位JDK安装路径 1. 终端输入: which ja ...
- 【开发笔记】- 在Grails下查看打印真实的SQL
以往我们都是在hibernate里面开启sql,在grails里面只需要在 DataSource.groovy 里面的一个dataSource加入一个 logSql = true即可,但是这样加后发出 ...
- Java集合学习(8):LinkedList
一.概述 LinkedList和ArrayList一样,都实现了List接口,但其内部的数据结构有本质的不同.LinkedList是基于链表实现的(通过名字也能区分开来),所以它的插入和删除操作比Ar ...
- k8s 学习笔记
常用的kubectl命令 kubectl run kubia --image=luksa/kubia --port=8080 --generator=run/v1 --image 指定镜像 - ...
- 树莓派开机发送IP地址到邮箱
树莓派使用的wifi联网,在宿舍使用的是公共网络,不能设置静态ip,每次树莓派上电开机后ip地址可能会改变,所以让树莓派开机联网后自动发送ip地址到QQ邮箱 一.安装mutt和msmtp mutt: ...
- gitlab安装配置
一.安装依赖服务 yum install curl policycoreutils-python openssh-server postfix -y systemctl start postfix s ...