引用
http://www.itxuexi.com/tech/java/webframe/6291250227959.html
Web应用中对于异常的处理方式与其他形式的应用并没有太大的不同――通过try/catch语句针对不同的异常进行相应处理。
但是在具体实现中,由于异常层次、种类繁杂,我们往往很难在Servlet、JSP层妥善的处理好所有异常情况,代码中大量的try/catch代码显得尤为凌乱。
我们通常面对下面两个主要问题:
1. 对异常实现集中式处理
典型情况:对数据库异常记录错误日志。一般处理方法无外两种,一是在各处数据库
访问代码的异常处理中,加上日志记录语句。二是将在数据访问代码中将异常向上抛
出,并在上层结构中进行集中的日志记录处理。
第一种处理方法失之繁琐、并且导致系统难以维护,假设后继需求为“对于数据库异
常,需记录日志,并发送通知消息告知系统管理员”。我们不得不对分散在系统中的各
处代码进行整改,工作量庞大。
第二种处理方法实现了统一的异常处理,但如果缺乏设计,往往使得上层异常处理过
于复杂。
这里,我们需要的是一个设计清晰、成熟可靠的集中式异常处理方案。
2. 对未捕获异常的处理
对于Unchecked Exception而言,由于代码不强制捕获,往往被程序员所忽略,如果
运行期产生了Unchecked Exception,而代码中又没有进行相应的捕获和处理,则我
们可能不得不面对尴尬的500服务器内部错误提示页面。
这里,我们需要一个全面而有效的异常处理机制。
Spring MVC中提供了一个通用的异常处理机制,它提供了一个成熟的,简洁清晰的异常处理方案。如果基于Spring MVC开发Web应用,那么利用这套现成的机制进行异常处理也更加自然和有效。
Spring MVC中的异常处理:
以前面的注册系统为例,首先,在Dispatcher配置文件Config.xml中增加id为
“exceptionResolver”的bean定义:
<bean id="exceptionResolver"
class="org.springframework.web.servlet.handler.SimpleMappingEx
ceptionResolver">
<property name="defaultErrorView">
SpringFrameWork Developer’s Guide Version 0.6
October 8, 2004 So many open source projects.Why not Open your Documents?
<value>failure</value>
</property>
<property name="exceptionMappings">
<props>
<prop key="java.sql.SQLException">showDBError</prop>
<prop key="java.lang.RuntimeException">showError</prop>
</props>
</property>
</bean>
通过SimpleMappingExceptionResolver我们可以将不同的异常映射到不同的jsp页
面(通过exceptionMappings属性的配置),同时我们也可以为所有的异常指定一个默认的异常提示页面(通过defaultErrorView属性的配置),如果所抛出的异常在exceptionMappings中没有对应的映射,则Spring将用此默认配置显示异常信息(注意这里配置的异常显示界面均仅包括主文件名,至于文件路径和后缀已经在viewResolver中指定)。
一个典型的异常显示页面如下:
<html>
<head><title>Exception!</title></head>
<body>
<% Exception ex = (Exception)request.getAttribute("Exception"); %>
<H2>Exception: <% ex.getMessage();%></H2>
<P/>
<% ex.printStackTrace(new java.io.PrintWriter(out)); %>
</body>
</html>
如果SimpleMappingExceptionResolver无法满足异常处理的需要,我们可以针HandlerExceptionResolver接口实现自己异常处理类,这同样非常简单(只需要实现一个resolveException方法)。
分享到:
相关推荐
财税实务:小议中国互联网企业成本方法的创新-“反化”成本法.pdf
高职药学论文:小议高职药学创新与实践.doc
教学质量论文:小议农村教学质量的试验.doc
波兰教育论文:小议波兰农村教育的改进.doc
消费调查论文:小议河南居民消费调查与提议.doc
2010年甘肃省(全国II)高考优秀作文:小议浅阅读.doc
小议战略成本管理框架透析.doc
嵌入式linux小议:ELF 文件格式分析嵌入式linux小议:ELF 文件格式分析
小议外科教学的几点体会.doc
1、高性能Web服务器Nginx的配置与部署...16、高性能Web服务器Nginx的配置与部署研究(16)小议location匹配模式优先级 内容:介绍 location 区段的模式匹配的几种基本方式(匹配符),以及优先级顺序,并提供实例分析。
小议电力系统中性点接地方式及其零序保护.pdf
小议新形势下大额现金管理.doc
小议幼儿教育小学化问题的几点思考
小议现行金融制度对农业的影响.doc
小议羊首勺
小议外汇期权会计在新规则中应用.doc
小议经济型酒店消费者心理及消费方向.doc
小议秦始皇焚书坑儒.doc
私立幼儿园小议.pdf
小议初中政治趣味教学