`
json20080301
  • 浏览: 165809 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

SPRING MVC3.2案例讲解--异常处理

 
阅读更多

SPRING MVC 异常处理 可以全局进行定义,也可以单独在SPRING controller中定义;同时SPRING MVC将异常处理的代码和业务逻辑进行分离,将异常的处理放到一个单独的带有@ExceptionHandler方法中;

 

@Controller
public class ExceptionController {

      
	@RequestMapping("/exception")
	public @ResponseBody String exception() {
		throw new IllegalStateException("Sorry!");
	}

       // 处理异常的代码,这样就实现了业务逻辑和异常处理的分离
	@ExceptionHandler
	public @ResponseBody String handle(IllegalStateException e) {
		return "IllegalStateException handled!";
	}

	@RequestMapping("/global-exception")
	public @ResponseBody String businessException() throws BusinessException {
		throw new BusinessException();
	}

}

 

SPRING 处理异常的流程:

1.WEB启动时ExceptionHandlerExceptionResolver 扫描到通用的异常处理方法:

DEBUG ExceptionHandlerExceptionResolver Looking for exception mappings: WebApplicationContext for namespace 'appServlet-servlet': startup date [Sat Jun 08 08:40:41 GMT 2013]; parent: Root WebApplicationContext

 

INFO  ExceptionHandlerExceptionResolver Detected @ExceptionHandler methods in globalExceptionHandler

 

2.当请求出现异常时,首先看当前类中是否含有@ExceptionHandler的处理方法

DEBUG ExceptionHandlerExceptionResolver Resolving exception from handler [public java.lang.String org.springframework.samples.mvc.exceptions.ExceptionController.exception()]: java.lang.IllegalStateException: Sorry!

DEBUG ExceptionHandlerExceptionResolver Invoking @ExceptionHandler method: public java.lang.String org.springframework.samples.mvc.exceptions.ExceptionController.handle(java.lang.IllegalStateException)

DEBUG RequestResponseBodyMethodProcessor Written [IllegalStateException handled!] as "text/plain;charset=ISO-8859-1" using [org.springframework.http.converter.StringHttpMessageConverter@163e9a1]

 

3.然后看有没有含有@ExceptionHandler method 的类,另外该类必须@ControllerAdvice

DEBUG ExceptionHandlerExceptionResolver Resolving exception from handler [public java.lang.String org.springframework.samples.mvc.exceptions.ExceptionController.businessException() throws org.springframework.samples.mvc.exceptions.BusinessException]: org.springframework.samples.mvc.exceptions.BusinessException

DEBUG ExceptionHandlerExceptionResolver Invoking @ExceptionHandler method: public java.lang.String org.springframework.samples.mvc.exceptions.GlobalExceptionHandler.handleBusinessException(org.springframework.samples.mvc.exceptions.BusinessException)

0
0
分享到:
评论

相关推荐

    SPRING MVC3.2案例讲解---配置

    **Spring MVC 3.2 案例讲解——配置** Spring MVC 是 Spring 框架的一个模块,专门用于处理Web应用程序的请求-响应模式。在3.2版本中,Spring MVC引入了一些重要的改进和增强,使得开发更加高效和灵活。本篇文章将...

    Spring3.2异步处理http请求

    通过上述讲解,我们已经对Spring 3.2中的异步处理有了深入理解。正确地使用异步处理可以显著提高应用的性能,特别是在处理大量并发请求时。然而,它也需要合理的配置和管理,以确保系统的稳定性和可维护性。

    spring2.0技术手册--林信良

    《Spring 2.0 技术手册》是继 Spring 1.0 之后的重要著作,作者林信良针对 Spring 框架在 2.0 版本中的新特性进行了深入剖析与讲解。本书不仅适合于已经有一定 Java 开发基础的学习者,也适用于想要深入了解 Spring ...

    Spring_3.x企业应用开发实战 目录

    ### Spring 3.x 企业应用开发实战:关键知识点解析 ...这些知识点覆盖了 Spring 框架的基础概念、新功能、项目搭建、快速入门案例、IoC 容器的使用以及 Bean 的配置等方面,为读者提供了全面而深入的理解。

    Spring 3 中文帮助文档..pdf

    - **4.2.2.1 处理基于XML的配置元数据**:详细讲解了如何通过XML文件来配置Bean。 - **4.2.3 使用容器**:介绍了如何从容器中获取Bean,并使用它们。 - **4.3 Bean概述** - **4.3.1 命名bean**:讨论了如何为Bean...

    Spring+SpringMVC+Mybatis资源课件

    “3.1 Spring框架.pptx”和“3.2 Spring应用 .pptx”则可能详细讲解了Spring框架的核心组件和实际应用场景,比如AOP在事务管理中的应用,以及Spring与其他技术(如JDBC、Hibernate)的集成。 总体来说,这个资源包...

    跟我学SpringMVC

    - **SpringMVC与传统MVC的区别**:SpringMVC在传统MVC的基础上进行了优化,例如使用了前端控制器(DispatcherServlet)来集中处理请求,以及使用了基于注解的方式来进行配置等。 ##### 2.2 SpringMVC入门案例 - **...

    shiro视频教程-最全,通俗易懂

    - **3.3 集成Spring MVC**:介绍如何将Shiro与Spring MVC框架进行整合,实现基于注解的权限控制。 - **3.4 整合MyBatis**:通过示例演示如何在MyBatis中实现用户数据的增删改查操作,并与Shiro进行集成。 #### 四、...

    struts2学习资料

    - 适当使用拦截器,实现通用的功能,如异常处理、登录验证等。 - 注意安全问题,如XSS、CSRF等,Struts2有一些内置的安全措施,但还需要开发者进行额外的防护。 通过以上这些学习资料,开发者可以从基础到高级,...

    本资源属于,jsp课程设计是应用SSM框架的做的名片管理系统,框架比较简单,便于理解和修改.zip

    2. "附录3.2 MyBatis的映射器与动态SQL.ppt":这份PPT可能深入讲解了MyBatis框架中映射器的概念以及如何使用动态SQL进行灵活的数据查询。映射器是MyBatis的核心部分,它负责将Java方法与SQL语句关联起来,而动态SQL...

    struts2系列教程

    - **3.2 Struts2配置文件**:主要讲解`struts.xml`文件的作用、格式及配置项。 - **3.3 Action配置**:Action类的设计原则、生命周期以及配置方法。 #### 五、表单验证 - **4.1 手动完成输入校验**:通过编写代码...

    JSF基于EJB Hibernate Spring整合开发与项目

    ### JSF基于EJB Hibernate Spring整合开发与项目 #### 一、JSF基础知识 ##### 1.1 了解JSF JavaServer Faces (JSF) 是一个用于构建基于Web的应用程序的标准Java EE技术。它提供了丰富的组件库以及一套声明式的...

    2017年尚学堂Java培训课程大纲.docx

    - **Spring MVC简介及基本使用**:了解Spring MVC框架的基本概念和使用方法。 - **Spring MVC注解开发**:学习基于注解的控制器开发方式。 - **处理器映射和处理器适配器**:掌握处理器映射和适配器的工作原理。 - *...

    最新版Java视频学习路线图(内涵源码等获取方式)2.0(1).docx

    - **特点**:SpringMVC是Spring框架的一部分,用于构建MVC架构的Web应用程序。 - **获取方式**:通过B站链接观看。链接为:https://www.bilibili.com/video/BV1yt411h7nZ/ - **6.2.3 Mybatis框架** - **特点**:...

    Java高手真经.应用框架卷[光盘内容]

    《Java高手真经》之应用框架卷不仅深入浅出地讲解了Java Web领域内的几种核心框架,而且还提供了丰富的实战案例和完整的代码示例。这对于想要提升自己在Java Web开发方面技能的读者来说,是一份非常宝贵的学习资料。...

    张孝祥 Java就业培训教程-书内源码及PPT文档.rar

    2.2 异常处理:理解异常的概念,学会try-catch-finally语句的使用。 2.3 文件与流:文件操作,输入输出流,对象序列化和反序列化。 2.4 多线程:线程的创建与管理,同步机制(synchronized关键字、wait/notify)。 ...

    osgi doc

    文档旨在通过具体案例深入讲解OSGi框架的应用技巧,帮助读者掌握如何利用OSGi构建高效、可扩展的Java应用系统,并提供最佳实践和设计模式指导。 ##### 1.3 导读 文档分为以下几个主要部分: 1. **基于OSGi的留言板...

Global site tag (gtag.js) - Google Analytics