springMVC异常处理(自定义异常)HandlerExceptionResolver
注:本篇的异常主要指的是controller、service和dao层中执行方法抛出的异常。
一、为什么要处理异常?
因为如果我们不处理异常,异常信息就会直接抛出给浏览器,于是浏览器页面就直接显示异常信息,这对用户来说是很不友好的。我们应该在发生错误时返回一个友好的错误提示页面展示给用户。
二,异常处理思路
当dao或者其他层抛出异常时,异常会向上逐层抛出,最后抛出到浏览器。那么我们就可以在异常抛出到前端控制器(DispatcherServlet)的时候,编写异常处理器对异常进行拦截,经过异常处理器处理异常后,跳转到一个友好的错误提示页面并返回给浏览器

三、实现步骤
1.编写自定义异常类
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;
}
}
2.编写异常处理器类
public class SysExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception ex) {
SysException e = null;
if (ex instanceof SysException){
e = (SysException) ex;
}else {
e = new SysException("系统正在维护");
}
ModelAndView mv = new ModelAndView();
mv.addObject("errorMsg",ex.getMessage());
mv.setViewName("error");
return mv;
}
}
注意:异常处理器类必须实现HandlerExceptionResolver接口,并实现接口中的方法
3.配置异常处理器(将异常处理器交给spring容器管理)
方式一:用xml配置的方式
在springmvc.xml配置文件中加如bean标签,将刚刚编写的异常处理器类交给spring容器管理。
<bean id="sysExceptionResolver" class="com.xj.exception.SysExceptionResolver"/>
方式二:使用注解
在刚刚编写的异常处理器类上加上Component注解
例如:
@Component
public class SysExceptionResolver implements HandlerExceptionResolver { }
这样就配置好了。
springMVC异常处理(自定义异常)HandlerExceptionResolver的更多相关文章
- springMVC源码分析--异常处理机制HandlerExceptionResolver执行原理(二)
上一篇博客springMVC源码分析--异常处理机制HandlerExceptionResolver简单示例(一)中我们简单地实现了一个异常处理实例,接下来我们要介绍一下HandlerExceptio ...
- SpringMVC异常处理机制详解[附带源码分析]
目录 前言 重要接口和类介绍 HandlerExceptionResolver接口 AbstractHandlerExceptionResolver抽象类 AbstractHandlerMethodE ...
- SpringMVC异常处理机制
SpringMVC异常处理机制 springMVC会将所有在doDispatch方法中的异常捕获,然后处理.无法处理的异常会抛出给容器处理. 在doDispatch()中调用processDispat ...
- 【SpringMVC】SpringMVC 异常处理
SpringMVC 异常处理 文章源码 异常处理思路 系统中异常包括两类:预期异常和运行时异常,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减少运行时异常的发生. Cont ...
- SpringMvc异常处理
SpringMvc通过HandlerExceptionResolver处理程序的异常,包括Handler映射.数据绑定.以及方法执行时发生的异常,SpringMvc提供的HandlerExceptio ...
- SpringMVC——异常处理
Spring MVC 通过 HandlerExceptionResolver 处理程序的异常,包括 Handler 映射.数据绑定以及目标方法执行时发生的异常. SpringMVC 提供的 Handl ...
- SpringMVC中利用HandlerExceptionResolver完成异常处理
在解决Controller层中的异常问题时,如果针对每个异常处理相对较为繁琐.在SpringMVC中提供了HandlerExceptionResolver用于处理捕获到的异常,从而重新定义返回给前端的 ...
- springMVC源码分析--异常处理机制HandlerExceptionResolver简单示例(一)
springMVC对Controller执行过程中出现的异常提供了统一的处理机制,其实这种处理机制也简单,只要抛出的异常在DispatcherServlet中都会进行捕获,这样就可以统一的对异常进行处 ...
- SpringMVC异常处理方式
一.描述 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的.不可预知的异常需要处理.每个过程都单独处理异常,系统的代码耦合 ...
随机推荐
- Windows PE资源表编程(枚举资源树)
资源枚举 写一个例子,枚举一个PE文件的资源表.首先说下资源相关的作为铺垫. 1.资源类型也是PE可选头中数据目录的一种.位于第三个类型. 2.资源目录分为三层.第四层是描述文件相关的.这些结构是按照 ...
- python模块一之faker模块
faker模块主要是用来创建伪数据,无需手动生成或者手写随机数来生成数据,可以利用faker完成伪造大量测试数据的工作 一.安装 pip install faker 二.使用 from faker i ...
- OO_Unit1_表达式求导
CSDN链接 一.第一次作业 1.需求分析 简单多项式导函数 带符号整数 支持前导0的带符号整数,符号可省略,如: +02.-16.19260817等. 幂函数 一般形式 由自变量x和指数组成,指数为 ...
- Zoho Projects助力企业项目高效管理
挑选项目管理工具,就和人买衣服.买鞋子是一样的,除了看外观,最重要的是合适.随着项目管理工具的不断发展,市面上有很多工具都非常优秀,也能解决企业.团队的实际需求. 对于项目管理来说,最重要的在于人员协 ...
- [bug] 安装MySQL8.0.15 失败,提示This application requires Visual Studio 2015 x64 Redistributable
参考 https://blog.csdn.net/weixin_44092289/article/details/88045666
- [bug] Shell:paths must precede expression
参考 https://www.cnblogs.com/peter1994/p/7297656.html
- [bug] Python Anoconda3 安装完成后开始菜单不显示
版本问题,需更新 win+R打开cmd,敲入命令: conda update menuinst conda install -f console_shortcut ipython ipython-no ...
- 安装SpecCPU2006 on Linux of CentOS6.3, gcc4.4.7
安装SpecCPU2006 on Linux of CentOS6.3, gcc4.4.7 由于在tools/bin目录中只有ia64-linux,所以在直接运行./install.sh脚本时,系统会 ...
- VMware虚拟机性能优化
一.ESX及vCenter服务器的优化 检查ESX物理服务器是否在兼容列表中,特别是BIOS的版本是否符合ESX版本的要求 开启ESX物理服务器硬件虚拟化技术VT-X,AMD-V 关闭BIOS中的英特 ...
- 第3期:Too many open files以及ulimit的探讨
第3期:Too many open files以及ulimit的探讨 毛帅 Java.AI.互联网.金融 10 人赞同了该文章 Too many open files是Java常见的异常,通常是由于系 ...