方式一

1.1  创建全局异常类

该类要实现HandlerExceptionResolver接口,详细如下:

package com.rbc.hbms.util;import java.util.HashMap;
import java.util.Map;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;/*** 捕捉全局异常并输出* @author MoXingJian* @email 939697374@qq.com* @date 2017年8月16日 上午10:01:40* @version 1.0*/public class GobalExceptionResolver implements HandlerExceptionResolver{@Overridepublic ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object object,Exception ex) {String message = ex.getMessage();Throwable cause = ex.getCause();System.out.println("进入全局异常");//以下信息一般存进日志,这里作为简单测试System.out.println("异常类型=" + ex.getClass().getSimpleName());System.out.println("异常描述=" + message);System.out.println("异常原因=" + cause);/*** 测试的时候可以把错误信息输出到页面,真正给客户使用的时候,* 千万不要这样做,给别人印象不好,别人以为你的系统老是出问题。* 可以适当地提示“系统繁忙”或者“你访问的页面不存在”之类的。*/Map<String, Object> model = new HashMap<String, Object>();model.put("ex", ex);/*** 可以根据需要,不同的异常跳转到不同的页面。* 例如,dao层异常,可以跳到“数据库异常页面”。* service层异常,可以跳转到“业务异常页面”。* 找不到页面异常,可以跳转到404页面。等等*/return new ModelAndView("error", model);}}

1.2  配置

在Spring配置文件中配置该类

<!-- 全局异常配置 --><bean id="GobalExceptionResolver" class="com.rbc.hbms.util.GobalExceptionResolver"/>

1.3  测试

在service层捕捉一个未做处理的异常

int i = 10/0;

效果如下:

方式二

在方式一的 基础上再优化

2.1配置访问路径

首先分别在类名和方法名写好访问路径

类名

@Controller
@RequestMapping("/sysmgr/gobalExceptionResolver.action")
public class GobalExceptionResolver  implements HandlerExceptionResolver {

方法

@Override@RequestMapping(params = "method=resolveException")public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object object,Exception ex) {

2.2 异常捕捉

在web.xml配置,如下

  <error-page><exception-type>java.lang.Exception</exception-type><location>/sysmgr/gobalExceptionResolver.action?method=resolveException</location></error-page>

只要是该异常下的都会通过该路径找到。

Spring全局异常捕捉实现HandlerExceptionResolver接口,在error-page配置捕捉异常相关推荐

  1. java 异常 不抛_java中的不抛出的异常是什么

    RuntimeException与其子类和错误(Error)不是必须要捕获或抛出. Java异常Throwable分为两类:Error和Exception,Error类是错误,程序本身不能处理的. E ...

  2. SpringMVC 异常处理(简单异常处理器 SimpleMappingExceptionResolver;自定义异常处理需要实现HandlerExceptionResolver接口)

    一.SpringMVC 框架异常处理流程 二.异常处理的两种方式 三.简单异常处理器 SimpleMappingExceptionResolver 1.自定义异常类 package com.lt.ex ...

  3. spring全局异常抓取validation校验信息

    spring全局异常抓取validation校验信息 参考文章: (1)spring全局异常抓取validation校验信息 (2)https://www.cnblogs.com/jianxiaopo ...

  4. Spring全局异常处理的三种方式

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

  5. java全局异常处理_详解Spring全局异常处理的三种方式

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

  6. java注解的执行顺序_深入理解Spring的@Order注解和Ordered接口

    前言 Spring的@Order注解或者Ordered接口大家都知道是控制顺序的,那么它们到底是控制什么顺序的?是控制Bean的注入顺序,还是Bean的实例化顺序,还是Bean的执行顺序呢?那么我们先 ...

  7. Spring全局异常处理

    Spring全局异常处理 参考文章: (1)Spring全局异常处理 (2)https://www.cnblogs.com/snake23/p/10313612.html 备忘一下.

  8. spring.net结合普通三层(实现IOC 及AOP中的异常记录功能)

    spring.net结合普通三层(实现IOC 及AOP中的异常记录功能) 参考文章: (1)spring.net结合普通三层(实现IOC 及AOP中的异常记录功能) (2)https://www.cn ...

  9. Java实验之接口与实现、内部类与异常类

    Java实验之接口与实现.内部类与异常类 Java实验之接口与实现 评价成绩 体操比赛计算选手成绩的办法是去掉一个最高分和最低分后再计算平均分,而学校考 察一个班级的某科 目的考试情况时,是计算全班同 ...

最新文章

  1. js实现图片轮播(终结版)
  2. C语言用户标准是什么,C语言系统用户标准管理系统.doc
  3. Android --- 怎么设置 EditText 控件中光标默认位置,当 EditText 里有文字的时候,光标跑到了最前面
  4. 【小安翻唱】凉宫春日的忧郁--冒険でしょでしょ第五届外语歌曲大赛助兴节目~绫魂论坛送aya的生日礼物筹备开始~...
  5. 认识与入门:Markdown
  6. MySQL学习笔记——显示数据库信息
  7. 信息学奥赛一本通(1247:河中跳房子)
  8. limit offset
  9. 本地开发时同时启动多个tomcat服务器
  10. 【车联网】车联网产业发展报告(2019)
  11. .Net中的事件处理模型
  12. Java serialVersionUID
  13. PDF如何编辑,怎么修改PDF中的文字
  14. 「Python」面向对象封装案例3——士兵突击(需求分析、代码演练)
  15. pt100专用芯片_新能源 汽车电机专用温度传感器 PT100 进口芯片 德国
  16. ubuntu安装eclipse web和jeez插件处想 Cannot satisfy dependency问题
  17. 计算机网络和因特网大二暑假
  18. html中怎么设置图片平铺,css怎么把图片平铺?
  19. python 局域网广播_Python实现局域网内屏幕广播的技术要点分析
  20. JSEclipse——Eclipse上的JavaScript开发工具

热门文章

  1. python—操作MySQL增加数据
  2. 在ubuntu20.10上搭建SVN Server
  3. Linux Kernel中gicv3实现:SPIs中断routing到指定的CPU
  4. django之ORM查询操作(二)
  5. java 服务器线程池测试
  6. 2020-11-25(《深入理解计算机系统》多级页表详解)
  7. 安洵杯——game(混淆控制流平坦化)
  8. 返回对象2(调用了拷贝构造函数)
  9. python得到电脑的开机时间
  10. 【Rsyslog】Ubuntu 升级rsyslog