[size=large]自动异常处理机制[/size]
[size=medium][color=red]手动异常和自动异常的区别:[/color][/size]
[color=red]即在Action中不捕捉异常,而是将异常抛出给struts框架处理
我们需要在配置文件中指示struts如何处理这些被抛出的异常[/color]
使用<exception/>元素来定义自动异常处理
[size=large][color=red]原理:[/color][/size]
a.自定义一个异常类:ErrorCodeException继承RunTimeException,该类含有属性错误码和占位符,构造方法可以接收错误码,和占位符
b.自定义一个异常处理类:ErrorCodeExceptionHandler继承自ExceptionHandler,
c.负责登录的Action不进行捕捉异常,而是继续晚上抛,由框架中的ExceptionHandler及其子类来处理异常,具体要要看Struts-config.xml文件中配置而定,在以下的配置中,则由ErrorCodeExceptionHandler复写了ExceptionHandler中的方法execute(),则由ErrorCodeExceptionHandler来处理异常:
例如:<!-- 全局exception -->
<global-exceptions>
<exception key="error.exception" type="com.wlh.exception.ErrorCodeException" handler="com.wlh.exception.handler.ErrorCodeExceptionHandler"/>
</global-exceptions>
d、ErrorCodeExceptionHandler的execute方法中从ErrorCodeException对象中得到错误码和占位符的填充值,然后就可以将异常信息添加到Globals.EXCEPTION_KEY
e.最后和手动异常处理一样,可以通过html:messages和html:errors得到错误和成功信息
[size=medium][color=red]手动异常和自动异常的区别:[/color][/size]
[color=red]即在Action中不捕捉异常,而是将异常抛出给struts框架处理
我们需要在配置文件中指示struts如何处理这些被抛出的异常[/color]
使用<exception/>元素来定义自动异常处理
[size=large][color=red]原理:[/color][/size]
a.自定义一个异常类:ErrorCodeException继承RunTimeException,该类含有属性错误码和占位符,构造方法可以接收错误码,和占位符
b.自定义一个异常处理类:ErrorCodeExceptionHandler继承自ExceptionHandler,
c.负责登录的Action不进行捕捉异常,而是继续晚上抛,由框架中的ExceptionHandler及其子类来处理异常,具体要要看Struts-config.xml文件中配置而定,在以下的配置中,则由ErrorCodeExceptionHandler复写了ExceptionHandler中的方法execute(),则由ErrorCodeExceptionHandler来处理异常:
例如:<!-- 全局exception -->
<global-exceptions>
<exception key="error.exception" type="com.wlh.exception.ErrorCodeException" handler="com.wlh.exception.handler.ErrorCodeExceptionHandler"/>
</global-exceptions>
d、ErrorCodeExceptionHandler的execute方法中从ErrorCodeException对象中得到错误码和占位符的填充值,然后就可以将异常信息添加到Globals.EXCEPTION_KEY
e.最后和手动异常处理一样,可以通过html:messages和html:errors得到错误和成功信息