文档章节

SpringMVC框架中的异常解析器-ExceptionHandler和HandlerExceptionResolver

FansUnion
 FansUnion
发布于 2015/05/03 01:31
字数 249
阅读 45
收藏 0

SpringMVC框架中,处理异常还是挺方便的,提供了一个异常解析器。

处理局部异常

@Controller
public class AccessController {
    /**
     * 处理这个Controller内部发生的运行时异常
     */
    @ExceptionHandler(RuntimeException.class)
    public String runtimeExceptionHandler(RuntimeException runtimeException,ModelMap modelMap) {
        logger.error(runtimeException.getLocalizedMessage());

        modelMap.put("status", IntegralConstant.FAIL_STATUS);
        return "exception";
    }
}

处理全局异常

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

/**
 * 全局异常处理器,跳转到错误页面。所有未处理的异常,都会被处理。
 *
 * @author leiwen@FansUnion.cn
 */
@Component
public class SystemExceptionHandler implements HandlerExceptionResolver {

    public static final String ERROR_500 = "/views/error/500.jsp";
    
    private Logger logger = Logger.getLogger(getClass());

    public ModelAndView resolveException(HttpServletRequest request,
            HttpServletResponse response, Object handler, Exception ex) {
        logger.error("Catch-exception");
        ex.printStackTrace();
      
       //other code
        // 根据实际页面来修改
        return new ModelAndView(ERROR_500);
    }

}

另外,需要注意一点,确保上面的那个类SystemExceptionHandler被扫描到。

<!-- 使用annotation 自动注册bean, 并保证@Required、@Autowired的属性被注入 -->
    <context:component-scan base-package="cn.fansunion.*" />

参考资料

http://fuliang.iteye.com/blog/947191
http://snowolf.iteye.com/blog/1636050

原文链接http://FansUnion.cn/articles/3340(小雷网-FansUnion.cn)

© 著作权归作者所有

FansUnion
粉丝 60
博文 858
码字总数 825464
作品 0
丰台
高级程序员
私信 提问
spring mvc 异常处理机制和统一异常处理

一、异常处理机制 Spring MVC 是通过 处理程序的异常,包括请求映射、数据绑定以及处理器执行时发生的异常 1、HandlerExceptionResolver 只有一个接口方法 方法尝试解决在处理程序执行期间引...

非摩尔根
02/21
101
0
Spring MVC 系统异常处理方式及性能对比

大部分公司所用的Spring框架版本是3.1版本以下,所以今天暂时总结3.1版本的Spring-MVC异常处理方式。 一、Spring MVC处理异常有3种方式: (1)使用Spring-MVC提供的SimpleMappingExceptionR...

Candy_Desire
2014/10/17
14.7K
5
SpringMVC源码解析(五)——视图处理

前言 本篇将分析一次请求从接收到处理的最终环节——视图处理,也是 SpringMVC 源码解析的最后一节。将涉及异常处理和视图转发两部分。 源码解读 承接上篇,来看 “processDispatchResult” ...

MarvelCode
2018/07/07
52
0
Spring Boot全局异常处理

Spring Boot默认的异常处理机制 默认情况下,Spring Boot为两种情况提供了不同的响应方式: 一种是浏览器客户端请求一个不存在的页面或服务端处理发生异常时,一般情况下浏览器默认发送的请求...

狼王黄师傅
2018/10/16
225
0
程序员笔记|常见的Spring异常分析及处理

一、前言 相信我们每个人在SpringMVC开发中,都遇到这样的问题:当我们的代码正常运行时,返回的数据是我们预期格式,比如json或xml形式,但是一旦出现了异常(比如:NPE或者数组越界等等),...

宜信技术学院
05/13
2.5K
4

没有更多内容

加载失败,请刷新页面

加载更多

spring boot actuator

actuator 是监控系统健康的工具,引入 spring-boot-starter-actuator会暴露一些endpoint. 可通过如下配置来配置这些endpoint的基本配置: 可通过http:${url}:28081/management/actuator/*来访...

ZH-JSON
23分钟前
5
0
9.特殊权限 软连接 硬链接

6月7日任务 2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件 2.18 特殊权限set_uid 会发现有些文件的前三位并不是rwx而是rws,而s就代表...

oschina130111
35分钟前
2
0
好程序员web前端分享如何自学前端?步骤是什么?

好程序员web前端分享如何自学前端?步骤是什么?简单粗暴直接上学习流程。 1、学习HTML+CSS基础 HTML5新特性和CSS3 这个部分主要是需要记忆的知识点比较多,建议大家在学习的时候多加练习,最...

好程序员官方
36分钟前
3
0
创龙基于TI TMS320C6748定点/浮点DSP C674x + Xilinx Spartan-6 FPGA开发板

TL6748F-EVM是一款基于广州创龙SOM-TL6748F核心板设计的开发板,底板采用沉金无铅工艺2层板设计,它为用户提供了SOM-TL6748F核心板的测试平台,用于快速评估SOM-TL6748F核心板的整体性能。 ...

Tronlong创龙
42分钟前
3
0
8年前诞生于淘宝,细数阿里云RPA 的前世今生

9月10日,踏入55岁的马云正式卸任阿里巴巴董事局主席一职,由阿里巴巴集团CEO张勇接任。公寓创业、西湖论剑、美国敲钟,从成立到登顶中国最值钱的公司,阿里巴巴只用了20年。 阿里云RPA,201...

阿里云官方博客
46分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部