Struts2笔记——4.异常处理

我们希望当程序出现特定的异常,就跳转到特定的页面。并且我们希望捕获异常,处理异常的代码出现在一个特定的文件中。由于Action接口能够抛出所有异常,因此重写该方法时无需任何异常处理,直接丢给Struts2框架就好。框架会根据xml文件配置的异常映射,转入到指定的视图资源。通过此方法,action中无需任何异常捕获,仅仅需要操作struts.xml。使用该机制需要打开异常映射功能,因此需要一个拦截器(默认的叫exception),而我们发现在default.xml中已经为我们打开了。

声明式异常捕获

异常处理机制通过在action中配置exception-mapping完成(或者在package下设置全局异常映射)。全局映射对所有action有效,而局部映射仅对该action有效。对于同样类型的异常,局部会覆盖全局。注意:全局异常不要使用局部结果,而局部异常可以使用全局结果。

<exception-mapping result="yichang" exception="java.sql.SQLException"></exception-mapping>

result制定了输出异常信息的视图资源,而exception则表明了异常种类。通过如上配置,如果这个action中抛出了sql异常,那么架构就会自动跳转到yichang这个页面。在yichang这个页面,我们可以用struts2标签来输出异常信息。

<s:property value="exception"/><s:property value="exception.message"/><s:property value="exceptionStack"/>

上述三个struts2标签能够在视图页输出异常种类,自定义的异常信息,以及详细的异常堆栈信息。

参考文档:自定义异常

时间: 2024-10-28 23:20:59

Struts2笔记——4.异常处理的相关文章

struts2学习笔记(6)------配置struts2中的异常处理

我们平常的异常处理是直接在方法中手动捕捉异常,当捕捉到特定异常后,返回特定逻辑视图名.这样的缺点是代码与异常处理耦合太多,一旦要改变异常处理方式,需要修改代码! struts2提供给了一种更好的方式来处理异常------声明式的方式管理异常处理,我们可以通过再方法里将出现的异常throw出去,抛给struts2框架处理,然后再struts2中默认开启着异常映射功能,该功能在struts-default.xml中配置的一个拦截器,如下: <interceptor name="exceptio

python 学习笔记 6 -- 异常处理

当你的程序中出现某些 异常的 状况的时候,异常就发生了.例如,当你想要读某个文件的时候,而那个文件不存在.或者在程序运行的时候,你不小心把它删除了. 那么如果你是在IDE中运行,一个错误发生,异常会被打引出来,这便是未处理异常:当异常发生时,如果没有代码去关注和处理它,这些异常会传给置在Python中的缺省处理,他会输出一些调试信息并且终止运行.如果是在IDE中,这不是什么大事,但是如果是Python程序运行中的异常,它会导致整个程序终止,对于这些情况可以使用异常来处理. 1.try..exce

Struts2中的异常处理

因为在Action的execute方法声明时就抛出了Exception异常,所以我们无需再execute方法中捕捉异常,仅需在struts.xml 中配置异常处理. 为了使用Struts2的异常处理机制,必须打开Struts2的异常映射功能,这需要exception拦截器.在struts-default.xml文件中已经开启了exception拦截器. 声明式异常捕捉 Struts2的异常处理机制是通过在struts.xml文件中配置<exception-mapping--/>元素完成的,配置

Oracle 学习笔记 17 -- 异常处理(PL/SQL)

程序在执行过程中出现异常是正常的,在程序的编写过程中出现异常也是不可避免的.但是要有相应的异常处理的机 制,来保证程序的正常执行.PL/SQL程序执行过程中出现的错误,称为异常.一个优秀的程序都应该能够正确处理 各种出错的情况,并尽可能的从错误中恢复.PL/SQL提供了异常处理机制. 概念: 异常处理(exception)是用来处理正常执行过程中未预料的事件,程序块的异常处理定义的错误和自定义的错误, 由于PL/SQL程序块一旦产生异常而没有指出如何处理时,程序就会异常的终止. 有三种类型的错误

python学习笔记十——异常处理

1.try: command except 错误类型,记录错误信息变量: command finally: command try...finally的用处是无论是否发生异常都要确保资源释放代码的执行.一般来说,如果没有发生错误,执行过try语句块之后执行finally语句块,完成整个流程.如果try语句块发生了异常,抛出了这个异常,此时就马上进入finally语句块进行资源释放处理.如下从几个细节讨论finally的特性. 1).try中的return: 当在try语句块中含有return语句

Struts2声明式异常处理

Struts2支持声明式异常处理,不需要每个exception都捕获 方法只需throws Exception 即可 xml中配置如下 1.全局异常 <!-- 全局的配置,该pacakage中所有action异常都会跳转到/error.jsp --> <global-results> <result name="error">/error.jsp</result> </global-results> <global-ex

java struts2入门学习---异常处理和类型转换

https://www.cnblogs.com/amosli/p/3530577.html 一.struts2对异常的处理 1.自定义局部异常: <action> <exception-mapping result="sonException" exception="java.lang.ArithmeticException"></exception-mapping> </action> 2.自定义全局异常: <

C++学习笔记27:异常处理机制

一.异常处理机制基础 异常的定义 程序中可以检测的运行不正常的情况 异常处理的基本流程 某段程序代码在执行操作时发生特殊情况,引发一个特定的异常 另一段程序代码捕获该异常并处理它 二.异常的引发 throw 三.异常的捕获 try { ... } catch(...) 四.异常类与异常对象 五.异常处理策略 异常类可以派生和继承,形成类库架构 可捕获的异常对象的型式 普通型式(包括类):异常对象需要拷贝 对某型式对象的引用:没有额外的拷贝动作 指向某型式对象的指针:要求对象动态构造或者在catc

python学习笔记-Day08--(异常处理)

python的异常处理 格式: try:     statement     #正常代码 except IndexError,e:        #except可以写一个或多个     statement     #处理代码错误的代码 except Exception,e:         #except可以写一个或多个     statement     #处理代码错误的代码 else:  # 可选     pass   # 未出现异常的时候,会执行. finally:  #可选, 不管是否出