思路

springMvc 中,异常一层一层的往上抛,最后抛给 前端控制器,前端控制器内部会去找 全局异常处理器(一个系统只会有一个),进行统一异常处理 ;

对于运行时异常,捕捉到,就直接提示 未知错误,毕竟谁也不知道运行时会出现什么错误 ;


自定义异常处理类

	/**
* 自定义异常类
* @author An
* @date 2018年9月20日10:52:24
*/
public class CustomerException extends Exception {
private String message ;
public CustomerException(String message){
super(message) ;
this.message = message ;
} @Override
public String getMessage() {
return message;
}
}

全局异常处理器

在整个 springMvc 系统里面只有一个!需要我们自己来开发,需要实现 org.springframework.web.servlet.HandlerExceptionResolver 接口 ;

思路:

全局异常处理器处理思路:解析出异常类型,判断是自定义异常还是运行时异常,如果是自定义异常则获取异常信息,如果是运行时异常,则显示 未知错误 ;

public class ExceptionResolver implements HandlerExceptionResolver {

    /**
* 处理异常
* @param request
* @param response
* @param handler 就是处理器对象。发生异常方法的处理器对象
* @param ex 异常对象
* @return
*/
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
CustomerException customerException = null ;
if (ex instanceof CustomerException){
customerException = (CustomerException) ex;
}else {
customerException = new CustomerException("位置错误!") ;
} ModelAndView modelAndView = new ModelAndView() ;
// 填充数据
modelAndView.addObject("customerException",customerException);
// 绑定视图
modelAndView.setViewName("error");
return modelAndView;
}
}

配置全局异常处理器

springMvc.xml 文件中,加载之前写的 全局异常处理类

 <!--全局异常处理类-->
<bean class="xin.ijava.ssm.exception.ExceptionResolver"/>

(十一)springMvc 异常处理的更多相关文章

  1. SpringMVC异常处理机制详解[附带源码分析]

    目录 前言 重要接口和类介绍 HandlerExceptionResolver接口 AbstractHandlerExceptionResolver抽象类 AbstractHandlerMethodE ...

  2. Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块

    Python第十一天    异常处理  glob模块和shlex模块    打开外部程序和subprocess模块  subprocess类  Pipe管道  operator模块   sorted函 ...

  3. SpringMVC异常处理机制

    SpringMVC异常处理机制 springMVC会将所有在doDispatch方法中的异常捕获,然后处理.无法处理的异常会抛出给容器处理. 在doDispatch()中调用processDispat ...

  4. 【SpringMVC】SpringMVC 异常处理

    SpringMVC 异常处理 文章源码 异常处理思路 系统中异常包括两类:预期异常和运行时异常,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减少运行时异常的发生. Cont ...

  5. SpringMvc异常处理

    SpringMvc通过HandlerExceptionResolver处理程序的异常,包括Handler映射.数据绑定.以及方法执行时发生的异常,SpringMvc提供的HandlerExceptio ...

  6. SpringMVC 异常处理

    SpringMVC学习系列(10) 之 异常处理 在项目中如何处理出现的异常,在每个可能出现异常的地方都写代码捕捉异常?这显然是不合理的,当项目越来越大是也是不可维护的.那么如何保证我们处理异常的代码 ...

  7. SpringMVC异常处理方式

    一.描述 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的.不可预知的异常需要处理.每个过程都单独处理异常,系统的代码耦合 ...

  8. SpringMVC——异常处理

    Spring MVC 通过 HandlerExceptionResolver 处理程序的异常,包括 Handler 映射.数据绑定以及目标方法执行时发生的异常. SpringMVC 提供的 Handl ...

  9. springmvc异常处理(非注解与注解)

    1.异常 程序中的异常一般分为两类:预期异常,运行时异常.前者是我们可预知的,我们一般通过捕获和抛出方式处理这些异常.后者主要通过代码规范.测试等手段来减少异常的发生.一般,我们在系统的DAO.Ser ...

随机推荐

  1. DRF-视图类组件

    补充 GET  books-------->查看数据--------------------> 返回所有数据列表 :[{},{},{}] POST books-------->添加数 ...

  2. LoadLibraryA 和 GetProcAddress 调用动态库

    通过LoadLibraryA 和 GetProcAddress,动态调用无需配置链接库lib和相关的头文件配置.下面介绍一个例子的实现 1.动态库 A.加法类 头文件:#pragma once cla ...

  3. while练习

    题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%:20万到40万之 ...

  4. 二十七、Linux内核管理

    内核组成: uname命令 内核:uname,mkinitrd,dracut 模块: lsmod,modinfo,depmod,modprobe,insmod,rmmod /proc,sysctl,/ ...

  5. java/servlet/jsp 中String与int相互转换

    String ---> int //方式一:Integer(String s) //demo: Integer i = int a = i.intValue() //方式二:static int ...

  6. Fiddler 安装使用

    Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获.重发.编辑.转存等操作.也可以用来检测网络安全.反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的小功能 ...

  7. Logback 日志策略配置

    [参考文章]:官方文档:Logback configuration [参考文章]:logback的使用和logback.xml详解 [参考文章]:Logback源码赏析-日志按时间滚动(切割) 1. ...

  8. JavaScript作用域与闭包总结

    1.全局作用域 所有浏览器都支持 window 对象,它表示浏览器窗口,JavaScript 全局对象.函数以及变量均自动成为 window 对象的成员.所以,全局变量是 window 对象的属性,全 ...

  9. html中如何获取元素在文档中的位置

    html中如何获取元素在文档中的位置 一.总结 一句话总结: $("#elem").offset().top $("#elem").offset().left ...

  10. 一个有趣的BUG/按钮disabled之后还能触发click事件

    一个很有意思的Bug 某天测试同学再次向我反馈,你这个删除按钮虽然置灰了,但是还是可以点击啊? 我:????(黑人问号) 卧槽?不可能啊,按钮都disabled了,怎么还可以点击?还能触发click事 ...