第讲声明式异常处理.ppt
- 文档编号:2123441
- 上传时间:2022-10-27
- 格式:PPT
- 页数:18
- 大小:591KB
第讲声明式异常处理.ppt
《第讲声明式异常处理.ppt》由会员分享,可在线阅读,更多相关《第讲声明式异常处理.ppt(18页珍藏版)》请在冰豆网上搜索。
1高扬高扬高扬高扬tel:
13838109649email:
tel:
13838109649email:
第第20讲:
声明式异常处理讲:
声明式异常处理异常处理机制异常处理机制异常处理机制异常处理机制异常处理声明异常处理声明异常处理声明异常处理声明异常处理示例异常处理示例异常处理示例异常处理示例温故温故n要点回顾:
u自定义校验器定义校验器类,继承FieldValidatorSupport类,实现validate()方法注册校验器引用校验器u手工编写验证代码在Action组件中改写validate()方法,编写校验代码,将错误信息添加到Action的fieldErrors属性中本讲要点与教学目标本讲要点与教学目标【教学要点教学要点教学要点教学要点】1、异常处理机制、异常处理机制2、异常处理声明、异常处理声明3、异常处理示例、异常处理示例【教学目标教学目标教学目标教学目标】了解了解Struts2中异常处理机制,掌握声明式异常处理中异常处理机制,掌握声明式异常处理的方法。
的方法。
异常处理机制异常处理机制【声明式异常处理声明式异常处理】在业务方法中不需要编写异常处理代码,只需将异常抛出(throwsException),框架将按照异常类型及其在配置文件中的声明与映射调用相关的组件进行处理。
完成此项任务的是拦截器exception,当程序发生异常并抛出时,exception拦截器将对此异常对象再一次封装,并放到值栈(ValueStack)中,封装成的对象包含两个属性:
exception、exceptionStack案例案例11:
声明式异常处理:
声明式异常处理【案例要求案例要求】此案例用来演示声明式异常处理的方法。
用户从客户端提交数据到Action组件,在Action组件的execute()方法中人为设置能导致异常抛出的语句,通过异常声明映射到相关视图进行处理。
【基本思路基本思路】1、相关视图
(1)输入页:
input.jsp;
(2)成功页:
success.jsp;(3)异常页:
exception.jsp2、Action组件-ExceptionAction.java在execute()方法中抛出NullPointerException3、在配置文件中进行异常声明与映射案例案例11:
声明式异常处理:
声明式异常处理ninput.jspnsuccess.jsps:
textfieldname=usernamelabel=/s:
submitvalue=/案例案例11:
声明式异常处理:
声明式异常处理nAction类ExceptionAction.javapublicpublicclassclassExceptionActionExceptionActionextendsextendsActionSupportActionSupportprivateprivateStringusername;Stringusername;publicpublicStringgetUsername()StringgetUsername()returnreturnusername;username;publicpublicvoidvoidsetUsername(Stringusername)setUsername(Stringusername)thisthis.username=username;.username=username;publicpublicStringexecute()Stringexecute()throwsthrowsExceptionExceptionif(username.length()6)if(username.length()6)thrownewException(thrownewException(用用用用户户名太短名太短名太短名太短););Class.Class.forNameforName(com.microsoft.sqlserver.jdbc.SQLServerDriver(com.microsoft.sqlserver.jdbc.SQLServerDriver););returnreturnSUCCESSSUCCESS;案例案例11:
声明式异常处理:
声明式异常处理constantname=value=true/actionname=exceptioncom.hnjm.action.ExceptionActionexception-mappingresult=exception=java.lang.NullPointerException/exception-mappingresult=java.lang.Exception/success.jsp/success.jsp/input.jsp/input.jspresultname=/exception.jsp/exception.jspnstruts.xml中的声明案例案例11:
声明式异常处理:
声明式异常处理【结果结果】异常处理补充说明异常处理补充说明在struts.xml中,可以将异常声明放到action内部,声明的异常仅在指定Action的Result视图中引用,称为局部异常声明局部异常声明。
异常声明也可以放到action之外,声明的异常可以在全局Result视图中引用,称为全局异常声明全局异常声明。
案例案例22:
全局异常声明:
全局异常声明【案例要求案例要求】1、增加一个全局异常处理视图:
error.jsp2、修改在struts.xml,将对java.lang.Exception的异常声明改为全局声明案例案例22:
全局异常声明:
全局异常声明nstruts.xml配置resultname=/error.jsp/error.jspexception-mappingresult=exception=java.lang.Exception/!
-【注意注意】strutsstruts中元素声明是有顺序的,此处中元素声明是有顺序的,此处必须在必须在之前声明之前声明顺顺序序不不能能颠颠倒倒案例案例22:
全局异常声明:
全局异常声明【运行分析运行分析】异常的捕获也遵循“局部优先”原则,NullPointerException即符合局部声明的异常规则,又符合全局声明异常规则,此时按局部优先原则,转到局部的异常捕获视图。
案例案例33:
数据库连接访问的异常处理:
数据库连接访问的异常处理【案例说明案例说明】在应用程序运行过程中,可能会因为数据库连接参数、数据库环境设置等错误导致连接失败,从而导致程序执行错误。
以商品上传和显示为例,通过声明式异常处理,将SQLException异常映射到异常处理页进行输出。
案例案例33:
数据库连接访问的异常处理:
数据库连接访问的异常处理【案例分析案例分析】以前处理SQLException的方法是捕获异常直接在控制台输出。
若要通过声明式异常输出到异常处理页,则需要将产生的异常继续抛出,即:
在可能产生异常的方法内不用try-catch,而直接在方法声明中使用throwsXXXException短语将异常抛出给它的调用者。
案例案例33:
数据库连接访问的异常处理:
数据库连接访问的异常处理【关键步骤关键步骤】1、将连接类、业务类中的try-catch删除,在对应方法的声明中使用“throwsException”短语2、在struts.xml中进行异常声明和映射【具体操作具体操作】(略)小结小结n声明式异常处理u在struts.xml中声明异常处理的视图,将Action中抛出的异常在指定的视图中捕获并处理。
n异常声明的类型u局部声明在Action内部声明u全局声明在Action之外声明作业作业n编写程序验证声明式异常处理的方法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 声明 异常 处理