`
haouziwefe
  • 浏览: 127405 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring3.0中的异常处理配方法

    博客分类:
  • java
阅读更多
    spring3.0中对异常的处理方法一共提供了两种:一种是使用<span style="color: #0000ff;">handlerexceptionresolver</span>接口;一种是在controller类内部使用<span style="color: #0000ff;">@exceptionhandler</span>注解。使用第一种方式可以实现全局异常控制,并且spring已经提供了一个默认的实现类simplemappingexceptionresolver;使用第二种方式可以在controller内部实现更个性化点异常处理方式,灵活性更高。一般来说,项目中只需要采用第一种方式就可以了,每个人都自己定义异常的展现方式,太过个性了,不统一。
 
从目前的调查结果看,这两种方式不能共存,不知道未来的版本是否能将他们合二为一,这样才能灵活配置。
<h3>基于handlerexceptionresolver接口的异常处理:</h3>使用这种方式只需要实现resolveexception方法,该方法返回一个modelandview对象,在方法内部对异常的类型进行判断,然后常见合适的modelandview对象,如果该方法返回了null,则spring会继续寻找其他的实现了handlerexceptionresolver接口的bean。换句话说,spring会搜索所有注册在其环境中的实现了handlerexceptionresolver接口的bean,逐个执行,直到返回了一个modelandview对象。
示例代码:
/** * 基于handlerexceptionresolver接口的异常处理类 * @author zywang 2011-4-2 */public class customexceptionhandler implements handlerexceptionresolver {	@override	public modelandview resolveexception(httpservletrequest request,			httpservletresponse response, object object, exception exception) {		if(exception instanceof ioexception){			return new modelandview("ioexp");		}else if(exception instanceof sqlexception){			return new modelandview("sqlexp");		}		return null;	}}
这个类必须声明到spring中去,让spring管理它,你可以使用@component标签,也可以使用<bean/>节点。为了简单的进行异常处理,spring提供了simplemappingexceptionresolver类,该类实现了handlerexceptionresolver接口,需要使用时只需要使用<bean/>节点进行声明即可,示例如下:
	<bean class="org.springframework.web.servlet.handler.simplemappingexceptionresolver">		<!-- 定义默认的异常处理页面,当该异常类型的注册时使用 -->		<property name="defaulterrorview" value="error"></property>		<!-- 定义异常处理页面用来获取异常信息的变量名,默认名为exception -->		<property name="exceptionattribute" value="ex"></property>		<!-- 定义需要特殊处理的异常,用类名或完全路径名作为key,异常也页名作为值 -->		<property name="exceptionmappings">			<props>				<prop key="ioexception">error/ioexp</prop>				<prop key="java.sql.sqlexception">error/sqlexp</prop>			</props>		</property>	</bean>
<h3>基于@exceptionhandler的异常处理:</h3>该方法需要定义在controller内部,然后创建一个方法并用@exceptionhandler注解来修饰用来处理异常,这个方法基本和@requestmapping修饰的方法差不多,只是可以多一个类型为exception的参数,@exceptionhandler中可以添加一个或多个异常的类型,如果为空的话则认为可以触发所有的异常类型错误。
示例代码:
/** * 基于@exceptionhandler异常处理 * @author zywang 2011-4-2 */@controllerpublic class exceptionhandlercontroller {		@exceptionhandler(value={ioexception.class,sqlexception.class})	public string exp(exception ex,httpservletrequest request) {		request.setattribute("ex", ex);		return "/error.jsp";	}}
 
以上配置基于spring3.05进行设置,参考其《reference documentation》
 
0
3
分享到:
评论

相关推荐

    spring3.0 全部jar包

    在下载的"spring3.0 全部jar包"中,"dist"文件夹可能包含了所有Spring 3.0框架运行所需的库文件,包括核心容器、AOP、ORM、Web、Test等多个模块的jar包。这些jar文件是构建和运行Spring 3.0应用的基础,它们包含了...

    spring3.0jar包

    Spring 3.0 是一个里程碑式的版本,在Java企业级应用开发领域中占据着核心地位。这个版本的发布引入了许多新特性、改进和优化,旨在提升开发者的工作效率和应用程序的可维护性。Spring 框架以其强大的依赖注入...

    Spring3.0中文帮助文档

    以上只是Spring 3.0中部分关键特性和功能的概述,实际的中文帮助文档会详细解释这些概念,提供使用示例,并指导开发者如何在项目中有效地应用Spring框架。通过深入学习和实践,开发者能够充分利用Spring 3.0的优势,...

    spring3.0 jar包

    在Spring 3.0中,注解的应用更加广泛,如@Controller、@Service、@Repository和@Transactional等,极大地简化了XML配置,提高了开发效率。开发者可以通过注解直接在类或方法上声明其在应用程序中的角色和行为。 3....

    Spring 3.0就这么简单_Part3.pdf

    《Spring 3.0就这么简单》语言简洁,实例丰富,可帮助读者迅速掌握使用Spring3.0进行开发所需的各种技能。《Spring3.0就这么简单》适合于具有一定Java编程基础的读者,以及在Java平台下进行各类软件开发的开发人员和...

    spring3.0 MVC中文教程

    7. **第7部分:在Spring 3 MVC和Hibernate中保存/检索BLOB对象** - 解释如何在Spring MVC和Hibernate框架中处理大二进制对象(如图片或文件)。 #### 三、Spring 3.0 MVC的关键特性和配置 **Spring 3.0的新特性**...

    Spring 3.0就这么简单源代码

    《Spring3.0就这么简单》的主旨就是帮助读者尽快上手,掌握Spring3.0的核心内容,正确地进行项目实战,同时汲取Spring的思想,并最终将这种思想灵活运用到实际工作中。《Spring3.0就这么简单》主要介绍了Spring3.0的...

    spring3.0MVC中文教材

    #### 三、Spring 3.0 MVC请求处理生命周期 1. **客户端发起HTTP请求**: 客户端通过HTTP协议向服务器发送请求。 2. **前端控制器(DispatcherServlet)接收请求**: DispatcherServlet是Spring MVC的核心组件,负责...

    spring 3.0 jar 包

    Spring 3.0是Spring框架的一个重要版本,它在Java应用程序开发中扮演着核心角色,尤其是在企业级应用中。这个版本引入了许多新特性,优化了性能,并提供了更好的开发者体验。以下是一些关于Spring 3.0及其jar包的...

    spring3.0完整框架

    这个压缩包中的"spring3.0"文件很可能包含了所有需要的Spring 3.0框架相关的jar包,包括核心库、AOP、Web、MVC等模块的jar,是搭建Spring 3.0环境所必需的。开发者可以通过这些jar包快速构建基于Spring 3.0的应用,...

    spring3.0的API

    在Spring 3.0中,核心容器(Core Container)组件得到了显著提升,主要体现在以下几个方面: 1. **Bean表达式语言(Bean Expression Language, BEML)**:Spring 3.0引入了基于Groovy的表达式语言,允许在配置中...

    spring 3.0 jar包

    Spring 3.0的Web MVC模块引入了ModelAndView类的替代品——Model,使得模型数据的处理更加简洁。另外,新增了@ModelAttribute注解,用于将请求参数绑定到模型对象上。同时,对RESTful风格的URL支持也有所加强。 6....

    spring3.0发行版

    面向切面编程(AOP)在Spring 3.0中也得到了强化。新增的@Aspect注解使得定义切面更加直观,而@AfterReturning、@AfterThrowing等注解则方便了后置通知的编写。此外,Spring 3.0还支持了基于注解的切点表达式,让...

    spring3.0帮助文档(包含REST资料)

    Spring 3.0重要特性总结如下: ◆Spring表达式(SpEL):用于bean定义的核心表达式分析器 ◆对基于注释的组件的更多支持:允许通过元注释创建注释的“快捷方式” ◆标准化的依赖性注入注释:对Java中依赖性注入的...

    Spring3.0中文版

    4. **AOP增强**:在Spring3.0中,AOP的使用更加方便,可以通过注解定义切面,减少了编写代理代码的工作。同时,增强了切点表达式(Pointcut Expression)的功能。 5. **SpringMVC**:作为Spring框架的Web层解决方案...

    Spring3.0Jar包

    Spring 3.0 是 Spring 框架的一个重要版本,发布于2009年,它带来了许多新特性和改进,极大地增强了 Java 开发者在企业级应用开发中的灵活性和效率。Spring 框架是一个全面的后端开发解决方案,核心特性包括依赖注入...

    spring 3.0api

    Spring 3.0 API是Java开发中至关重要的一个框架,它是Spring框架的一个主要...通过查阅`Spring3.0-API.chm`文件,开发者可以快速查找并学习到Spring 3.0中的各种功能和API,从而更好地利用Spring进行应用程序的开发。

    Spring3.0 chmAPI 和 Spring3.0所有jar 和 Spring3.0源码

    本资源包含Spring3.0的API文档(chm格式)、所有必要的jar包以及源码,非常适合开发者在学习和开发过程中参考。 **Spring3.0 API文档** API文档(chm格式)提供了关于Spring3.0框架的详细说明,包括各个模块的功能...

    spring3.0jar包集合

    Spring 3.0中的Model-View-Controller(MVC)框架为Web应用提供了强大的支持。它包括模型对象、视图解析器、控制器接口和其他辅助类,帮助开发者构建清晰、解耦的Web应用。 4. **数据访问集成**: Spring 3.0提供...

Global site tag (gtag.js) - Google Analytics