`

springMVC异常处理机制

阅读更多

无论做什么项目,进行异常处理都是非常有必要的,而且你不能把一些只有程序员才能看懂的错误代码抛给用户去看,所以这时候进行统一的异常处理,展现一个比较友好的错误页面就显得很有必要了。

 

Spring3.0对异常的处理通过HandlerExceptionResolver来实现。

HandlerExceptionResolver有4个实现类DefaultHandlerExceptionResolverAnnotationMethodExceptionResolverResponseStatusExceptionResolverSimpleMappingExceptionResolver。 

 

Spring3.0对异常的处理主要可通过这两种方式:

一种是使用HandlerExceptionResolver接口;

一种是在@Controller处理器内部使用@ExceptionHandler注解。

使用第一种方式可以实现全局异常控制,并且Spring已经提供了一个默认的实现类SimpleMappingExceptionResolver;

使用第二种方式可以在Controller内部实现更个性化异常处理方式。 

 

优先级

 

<!-- 使用@ExceptionHandler注解的方法来处理Exception,优先级为0(最高) -->
<bean name="exceptionHandlerExceptionResolver"
	 class="org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver">
 <property name="contentNegotiationManager" ref="mvcContentNegotiationManager" />
 <property name="messageConverters" ref="messageConverters" />
 <property name="order" value="0" />
</bean>

<!-- 如果抛出的Exception类带有@ResponseStatus注解,响应返回该注解的Http状态码,优先级为1 -->
<bean name="responseStatusExceptionResolver"
	 class="org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver">
 <property name="order" value="1" />
</bean>

<!-- SpringMvc内部异常处理 -->
<bean name="defaultExceptionResolver"
	 class="org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver">
 <property name="order" value="2" />
</bean>

 

DefaultHandlerExceptionResolver:

Springmvc默认装配了DefaultHandlerExceptionResolver,它会将springmvc的异常转换成对应的响应状态码(500,404等)

对于Unchecked Exception而言,由于代码不强制捕获,往往被忽略,如果运行期产生了Unchecked Exception,而代码中又没有进行相应的捕获和处理,则我们可能不得不面对尴尬的404、500……等服务器内部错误提示页面。  

我们需要一个全面而有效的异常处理机制。目前大多数服务器也都支持在web.xml中通过<error-page>(Websphere/Weblogic)或者<error-code>(Tomcat)节点配置特定异常情况的显示页面。

 

SimpleMappingExceptionResolver的使用

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
	<!-- 定义默认的异常处理页面 -->
	<property name="defaultErrorView" value="error"/>
	<!-- 定义异常处理页面用来获取异常信息的变量名,如果不添加exceptionAttribute属性,则默认为exception -->
	<property name="exceptionAttribute" value="exception"/>
	<!-- 定义需要特殊处理的异常,用类名或完全路径名作为key,异常页面名作为值 -->
	<property name="exceptionMappings">
		<props>
			<prop key="IOException">error/io.jsp</prop>
			<prop key="java.sql.SQLException">error/sql.jsp</prop>
		</props>
	</property>
</bean>

1、defaultErrorView, 当没有配置异常处理映射时,该默认视图将起作用

2、exceptionMappings 异常处理映射Property,key=“异常名称”, vlaue=异常处理视图

配置这个只能拦截Exception,404错误是拦截不了,要单独在web.xml配置,它比web.xml中配置错误页面强大的地方是可以把异常输出。

<error-page>
	<exception-type>java.lang.Exception</exception-type>
	<location>/jsp/error.jsp</location>
</error-page>
<error-page>
	<error-code>404</error-code>
	<location>/jsp/error.jsp</location>
</error-page>

 

分享到:
评论

相关推荐

    SpringMVC——异常处理机制

    目录结构 四、配置一个错误的方法 package edu.xiao;...import edu.xiao.exception.SystemExc;...import org.springframework.stereotype.Controller;...import org.springframework.web.bind.annotation....

    springmvc异常处理demo.zip

    SpringMVC中异常处理机制,简单案例,里面有详细说明以及博客说明。

    springmvc-day03.xmind

    SpringMVC的文件上传,SpringMVC的拦截器,SpringMVC异常处理机制

    SpringMVC异常处理知识点总结

    SpringMVC异常处理知识点总结 SpringMVC 异常处理是指在 Spring MVC 框架中对异常情况的处理和解决机制。异常处理是指在程序执行过程中出现的错误或异常情况的处理和解决机制。在 Spring MVC 框架中,异常处理是...

    SSM框架教程Spring+SpringMVC+MyBatis全覆盖_Java热门框架视频教程

    视频详细讲解,需要的小...8、SpringMVC异常处理机制 MyBatis部分: 1、MyBatis入门操作 2、MyBatis的Dao层实现方式 3、MyBatis的映射文件深入 4、MyBatis的核心文件深入 5、MyBatis的多表操作 6、MyBatis的注解开发

    spingmvc+mybatis+统一异常处理机制

    统一异常处理会区分前端是否ajax请求,自动返回json数据格式,要求开发人员在处理ajax请求时统一封装成一个对象返回,以符合代码统一规范。 此工程在idea环境编写,导入请自己新建工程手工复制代码导入。

    SpringMVC上传下载异常处理

    本文档主要介绍了SpringMVC的ModelAndView机制,使用SpringMVC实现文件上传,下载以及全局异常处理机制

    springmvc 异常统一处理的三种方式详解.docx

    总结来说,Spring MVC提供的这三种异常处理机制各有优势,适用于不同场景。SimpleMappingExceptionResolver适合快速部署和简单异常处理;自定义HandlerExceptionResolver适用于高度定制的异常处理逻辑;而@...

    Maven+SpringMVC实现统一异常处理

    本篇将详细介绍如何利用Maven和SpringMVC来实现统一的异常处理机制。 首先,我们需要理解什么是统一异常处理。在Web应用中,异常处理通常是分散在各个控制器方法中的,这使得代码复用性差,且不易维护。统一异常...

    Spring MVC异常处理机制示例详解

    Spring MVC异常处理机制示例详解 Spring MVC 异常处理机制是指在 Spring MVC 框架中,对异常的捕捉和处理的机制。该机制主要是通过 HandlerExceptionResolver 接口来实现的,该接口只有一个处理方法,即 ...

    SpringMVC 中的拦截器与异常处理

    总结来说,SpringMVC中的拦截器和异常处理机制为开发者提供了强大的工具来增强应用的控制流和错误处理能力。通过合理利用拦截器,我们可以实现通用的功能,如用户认证和授权,而异常处理则能确保在出现错误时提供...

    完整版 Java开发实训课程系列-SpringMVC框架技术教程 第6章 异常处理 (共12页).pptx

    在SpringMVC框架中,异常处理机制允许开发者集中处理可能出现的各种异常,提高代码的可维护性和用户体验。 ### 异常处理思路 SpringMVC在处理请求时,如果遇到异常,会将其传递给异常处理器进行处理。这种处理方式...

    springmvc如何进行异常处理

    Spring MVC 异常处理机制详解 Spring MVC 是当前最流行的 Java Web 应用程序框架之一,它提供了一个强大的异常处理机制,帮助开发者更好地处理应用程序中的异常。下面,我们将详细介绍 Spring MVC 中的异常处理机制...

    SpringMVC异常处理器编写及配置

    总结来说,Spring MVC的异常处理机制允许开发者以结构化的方式处理异常,提供一致的用户体验。通过创建自定义异常类和相应的处理器,我们可以定制错误处理流程,确保在发生错误时,用户能够接收到清晰的错误信息,而...

    利用springmvc切面捕获全局异常入库源码

    首先,让我们了解Spring MVC的异常处理机制。Spring MVC提供了两种主要的方式来处理全局异常:`@ExceptionHandler`注解和`HandlerExceptionResolver`接口。`@ExceptionHandler`注解可以用于控制器方法,用来捕获特定...

    springmvc+spring线程池处理http并发请求数据同步控制问题

    3. 异常处理:对线程池中的异常进行捕获和处理,防止异常导致整个应用崩溃。 4. 监控和调优:通过Spring Boot Actuator等监控工具,实时查看线程池状态,根据实际运行情况调整配置。 总结,使用Spring MVC和Spring...

    SPRINGMVC+SHIRO+MYSQL

    **SSM框架应用详解** **一、SpringMVC框架** SpringMVC是Spring框架的一个模块,主要用于构建Web应用程序。...在实际开发中,还需要考虑异常处理、日志记录、性能优化等方面,以确保系统稳定可靠。

    ssm_异常处理

    首先,SpringMVC默认提供了异常处理机制。当控制器方法抛出未被捕获的异常时,SpringMVC会通过`HandlerExceptionResolver`接口的实现来处理这些异常。默认情况下,它会捕获到`Exception`及其子类,并将其转换为HTTP...

    SpringMVC详解

    SpringMVC提供了优雅的异常处理机制,允许开发者定义全局或特定Controller的异常处理器,将异常信息转换为用户友好的错误页面。 10. **SpringMVC的新特性** 随着版本的更新,SpringMVC不断引入新的特性和改进,...

Global site tag (gtag.js) - Google Analytics