SpringMVC 中的异常处理
2020-02-02 16:05:20来源:博客园 阅读 ()
SpringMVC 中的异常处理
目录
- 1、搭建编码分析
- 2、编写异常类
- 3、编写自定义异常处理器
- 4、在springmvc.xml中配置异常处理器
- 5、编写Error.jsp、index.jsp页面
- 6、编写collector代码模拟异常
- 7、运行效果
前言
说到SpringMVC 中的异常处理,就不得不提提java基础中的异常了,相信大家也都不陌生,这里就不再概述,详细可参考【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!其次再来谈谈SpringMVC 中的异常处理。
@
我们都知道我们所谓的异常主要包括两类:编译异常和运行时异常 RuntimeException
,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。
实际上SpringMVC 中的异常处理的原理就是:我们编写的dao
、service
、controller
出现异常都通过 throws Exception
向上抛出,最后由前端控制器交由HandlerExceptionResolver
异常处理器进行异常处理!
1、搭建编码分析
接下来就是编码阶段。其主要就是自定义一个异常类和对应异常页面,核心则是HandlerExceptionResolver
异常处理器,需要自定义一个类实现HandlerExceptionResolver
接口并编写其中的方法resolveException
,然后在springmvc.xml
中配置。最后就是一些请求响应的业务逻辑以及页面的搭建了。
2、编写异常类
编写一个自定义异常类,继承Exception
类
//自定义异常类
package com.Exception;
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;
}
}
3、编写自定义异常处理器
简单来说就是自定义一个类实现HandlerExceptionResolver
接口并编写其中的方法resolveException
package com.Exception;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SysExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
// 获取到异常对象
SysException sysException = null;
if(e instanceof SysException){
sysException = (SysException) e;
}else{
sysException = new SysException("系统正在维护升级ing....");
}
// 创建ModelAndView对象
ModelAndView mv = new ModelAndView();
//使用“errorMsg”存入提示信息
mv.addObject("errorMsg",sysException.getMessage());
mv.setViewName("error");
return mv;
}
}
4、在springmvc.xml中配置异常处理器
<!--配置异常处理器-->
<bean id="sysExceptionResolver" class="com.Exception.SysExceptionResolver"/>
5、编写Error.jsp、index.jsp页面
Error.jsp
页面
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${errorMsg}
</body>
</html>
index.jsp
页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>异常处理</h3>
<a href="user/testExcepting" >异常处理链接</a>
</body>
</html>
6、编写collector代码模拟异常
@RequestMapping("/user/testExcepting")
public String testException() throws SysException {
try{
int a=1/0;
}catch (Exception e){
e.printStackTrace();
throw new SysException("查询出现错误了...");
}
return "success";
}
7、运行效果
OK,如上效果说明SpringMVC 异常处理成功!
如果本文对你有一点点帮助,那么请点个赞呗,谢谢~
最后,若有不足或者不正之处,欢迎指正批评,感激不尽!如果有疑问欢迎留言,绝对第一时间回复!
欢迎各位关注我的公众号,里面有一些java学习资料和一大波java电子书籍,比如说周志明老师的深入java虚拟机、java编程思想、核心技术卷、大话设计模式、java并发编程实战.....都是java的圣经,不说了快上Tomcat车,咋们走!最主要的是一起探讨技术,向往技术,追求技术,说好了来了就是盆友喔...
原文链接:https://www.cnblogs.com/yichunguo/p/12251955.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:SpringMVC的异常处理
下一篇:跨表查询经常有,何为跨表更新?
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- MyBatis中的$和#,用不好,准备走人! 2020-06-11
- 构造函数中的this()和super() 2020-06-10
- 怎么用Java 高效提取、替换、删除PDF文档中的图片 2020-06-09
- Java笔记:数组,异常,泛型 2020-06-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash