您所在的位置:主页 > Java培训 >

应用中的异常处理Struts2异常处理机制

时间:2014-04-23 09:56来源:未知 作者:疯狂java 点击:


  任何成熟、完善的软件系统或网站都有可能出现异常,因此异常处理是必不可少的。在传统的异常处理方式中,开发人员一般需要编写大量的try...catch块。这种方式增加了开发人员的编码量,而且与其他代码高度耦合,一旦系统需要改变异常处理,就必须修改代码,给系统维护带来很多不便。Struts2作为优秀的MVC框架提供了成熟的异常处理机制。

  Struts2异常处理机制

  在struts 2的Action中,execute()方法将业务处理代码放在try...catch块中,若程序出现SQLException异常,就会捕捉到该异常并返回ERROR视图,这依然是传统的异常处理方式。另外在Struts2中,可以采用声明式异常处理方式,这样即可在struts.xml文件中进行配置,而在Action中无需编写任何异常处理代码,下面将介绍这种声明式异常处理机制。

  在Struts2中,客户端发送一个请求后会在Action中进行处理,在Action业务处理过程中,如果出现异常,一个名称为exception的拦截器将拦截该异常并进行处理,然后转到相应的视图反馈给用户。由于Struts2将异常交给拦截器进行处理,所以在Action中无须编写try...catch语句块,只需要在struts.xml中Action进行异常配置即可。

    struts.xml文件通过使用<exception-mapping>元素进行异常映射配置,在使用该元素时需要指定以下两个属性。exception该属性用来指定出现异常的类型。resule该属性用来指定出现异常是,Struts2返回给用户的视图名称。根据异常映射起作用的范围,可以将异常映射配置分为全局异常映射和局部异常映射。全局异常映射:这种映射使用<global-exception-mapping>元素进行配置,在该元素中嵌套<exception-mapping>作为子元素,映射范围是package中的所有Action。局部异常映射:这种映射直接在Action内部使用<exception-mapping>元素配置就可以了,当然作用范围为它所在Action。这两种异常映射的优先级不同,如果对一个Action既配置全局映射又配置局部映射,那么Struts2将采用局部映射进行异常处理。