随笔 - 6  文章 - 129  trackbacks - 0
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(14)

随笔档案(6)

文章分类(467)

文章档案(423)

相册

收藏夹(18)

JAVA

搜索

  •  

积分与排名

  • 积分 - 822229
  • 排名 - 49

最新评论

阅读排行榜

评论排行榜

业务异常的设计

  业务异常的层次结构设计在开发中也是非常重要的要作,业务异常体系结构的设计方法将直接影响
到异常处理的方法.
  对于异常系统的结构通常会被划分为三个层次,第一层为异常的基类,第二层为功能层或者模块层,
第三层为业务异常层,层与层之间是父子工的继承关系.
  对于一个通用的异常系统而言,通常会定义一个异常基类,假设是BaseException,该类继承自RuntimeException
之所以将业务异常的基类定义为RuntimeException,是因为业务异常是否需要开发人员在开发过程中进行捕获的
对于业务异常的捕获交给系统的框架或者表示层来完成.
  接下来,在BaseException的基础之上,还要为应用中的每个层次定义一个异常基类.例如,业务层的异常
可以定义为BusinessException,持久层的异常可以定义为DAOException等.当然,这一层次的异常也可以按照
功能或者模块来进行划分,划分的方式主要依赖于顶层对异常的处理方法.
  最后,就是为每一个业务异常定义相应的业务对象.另外,为减少异常对象的数量,在这一层也可以采取错误
代码,使得顶层的拦截程序可以依据错误代码来得到相应的错误信息.

异常处理方法

  Servlet容器中异常的处理
在web.xml文件中进行异常处理的配置是通过<error-page>元素来进行的,它支持两种类型的异常拦截.

<error-page>
 <error-code>404</error-code>
 <location>/error/notFound.jsp</location>
</error-page>

<error-page>
 <error-type>java.lang.NullPointException</error-type>
 <location>/error/nullPointer.jsp</location>
</error-page>

从JSP 2.0开始,除了在错误页面中可以使用绑定到request的exception对象外,还增加了一个名称为
errorData的绑定到pageContext的对象,该对象是javax.servlet.jsp.ErrorData类的实例,它可以当做
一个普通的Bean来使用,通过它的属性可以了解到异常的更多信息.
其属性如下:
属性      类型      描述
requestURI   String     发生请求失败的URI
servletName   String     发生错误的Servlet或者JSP页面的名称
statueCode   int       发生错误的状态码
throwable    Throwable    导致当前错误的异常
例如:
...
<title>404状态码错误的页面</title>
...
<jsp:useBean id="now" class="java.util.Date" />
发生异常的时间:${now}<br>
请求的地址: ${pageContext.errorData.requestURI }<br>
错误状态码: ${pageContext.errorData.statueCode }<br>
异常:    ${pageContext.errorData.throwable }
...

自定义异常页面

  自己在JSP页面中的定义将会覆盖在web.xml中的定义
  自定义异常页面的方法如下
<%@ page errorPage="/error/errorPage.jsp" %>

 



posted on 2007-08-28 21:19 Ke 阅读(398) 评论(0)  编辑  收藏 所属分类: struts

只有注册用户登录后才能发表评论。


网站导航: