`
json20080301
  • 浏览: 166896 次
  • 性别: 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 SE实践教程 pdf格式电子书 下载(一) 更新

    6.1.7 处理未被捕获的异常 117 6.1.8 守护线程 117 6.2 同步与锁 118 6.2.1 synchronized和同步 118 6.2.2 锁对象 120 6.2.3 Condition对象 121 6.2.4 再谈synchronized 122 6.3 协调任务 124 6.3.1 线程池...

    最新版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)。 ...

Global site tag (gtag.js) - Google Analytics