- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第12章 对系统异常进行处理 12.1 异常处理概述 Web应用包含的文件主要有Java文件、页面文件、配置文件。通常配置文件不会出错,而Java文件和页面文件比较容易出错。另外可能会出现一些与文件无关的错误,例如用户输入了不存在的文件名等。 Java文件中可能出现的异常如下: (1) 调用其他方法产生的异常。Java文件中主要的功能是调用其他的方法,所以异常主要是调用这些方法时产生的。例如,连接数据库、执行数据库操作、访问文件、把字符串转换成数字等,这些方法可能都会产生异常。所以在调用这些方法时,必须知道这些方法可能会产生什么异常。这些方法可能会产生什么异常,当前文件就可能会产生什么异常。 (2) 不好的编程习惯造成的异常。Java文件中还有可能产生的异常包括数组越界、NullPointerException等异常,这些异常主要是因为编写代码的习惯不好造成的。对于这种异常,通常在编写代码的时候增加一些判断就可以避免。 (3) 应用异常。在Java文件中还有一类比较特殊的异常,例如要对年龄赋值,但是参数是300,虽然不会产生错误,但是它确实是异常。 页面中主要是HTML代码和JSP标签,通常都是JSP标签在执行时出现异常。在页面中可以使用page标签对异常进行处理,另外在标准标签库中提供的c:catch标签也可以对异常进行处理。实际上这个处理过程与Java中的异常处理过程非常类似,只是采用标签来实现。 对于那些没有办法在文件中进行处理的异常,可以通过Web应用的配置文件web.xml进行处理。 12.2 Java代码中的异常处理 12.2.1 不好的编程习惯造成的异常 对于数组越界、NullPointerException等异常,需要在编写程序的时候仔细检查。如果养成良好的编程习惯,这种异常应该可以避免。也就是在访问数组或者对象之前,应该对数组或者对象进行分析,看看会不会产生异常。 例如,要访问数组可以先判断数组的下标是否小于数组的元素个数。对于对象方法的调用,可以先看看对象是否是null,如果是null,就不调用,这样就不会产生NullPointerException。 12.2.2 特殊类型的异常 对于比较特殊的不能进行处理的异常,需要抛给方法的调用者处理。例如前面提到的对年龄赋值的代码: public void setAge(int age) { this.age = age; } 该代码没有对可能的异常进行处理,如果用户调用这个方法的时候使用的参数不是一个合适的值,该方法也可以成功执行,但这是不正确的。 之所以产生异常,是因为方法的调用者没有使用正确的参数。当前方法是没有办法处理的,所以只能把异常抛给方法的调用者。下面的代码是修改后的代码: public void setAge(int age) throws Exception { if(age0 age120) this.age = age; else throw new Exception(年龄值不合法!); } 12.2.3 方法调用产生的异常 对于调用其他方法产生的异常,可以使用try-catch-finally结构进行处理。不管调用哪个方法,首先要明确可能会产生哪些异常,然后根据这些异常进行处理。假设上面的setAge方法的参数是字符串,这样在赋值的时候就需要把字符串转换成数字,可以使用Integer类的parseInt方法,这个方法在执行的过程中就可能会产生异常,异常的类型是java.lang.Number FormatException。 如果不进行异常处理,setAge方法可以写成: public void setAge(String age){ this.age = Integer.parseInt(age); } 如果要进行异常处理,可以写成下面的代码: public void setAge(String age){ try{ this.age = Integer.parseInt(age); }catch(NumberFormatException e) {… } } 代码中增加了try-catch语句,把可能会出现异常的代码放在try语句中,catch后的小括号中是可能会产生的异常的类型,在catch后面的大扩号中是产生异常之后要执行的代码。这样在产生异常的时候,异常就会被捕获,就会执行catch后面的大扩号中的代码,产生异常的代码后的代码就不会再执行了
您可能关注的文档
- (FPGA数字信号处理设计流程System Generator入门与提高)第1章FPGA硬件结构.ppt
- (FPGA数字信号处理设计流程System Generator入门与提高)第2章数字信号处理的基本知识.ppt
- (FPGA数字信号处理设计流程System Generator入门与提高)第3章SystemGenerator概述.ppt
- (FPGA数字信号处理设计流程System Generator入门与提高)第5章图形化工程设计流程及实现.ppt
- (FPGA数字信号处理设计流程System Generator入门与提高)第6章应用实例.ppt
- (GPS基本原理及其Matlab仿真)第1章绪论.ppt
- (GPS基本原理及其Matlab仿真)第3章GPS的坐标、时间系统和卫星的运动.ppt
- (GPS基本原理及其Matlab仿真)第4章GPS卫星的导航定位信号.ppt
- (GPS基本原理及其Matlab仿真)第5章GPS卫星信号的捕获.ppt
- (GPS基本原理及其Matlab仿真)第6章GPS卫星信号的跟踪.ppt
- (Java Web程序设计基础教程)第13章系统安全控制.ppt
- (Java Web程序设计基础教程)第14章综合实训:购物车管理和订单管理.ppt
- (Java Web程序设计基础教程)第15章程序调试.ppt
- (Linux网络操作系统应用教程)第1章Linux概述.ppt
- (Linux网络操作系统应用教程)第2章安装Linux系统.ppt
- (Linux网络操作系统应用教程)第3章图形化用户界面.ppt
- (Linux网络操作系统应用教程)第4章字符界面与简单Shell命令和vi编辑器.ppt
- (Linux网络操作系统应用教程)第5章Linux中用户和组群的管理.ppt
- (Linux网络操作系统应用教程)第6章文件系统及其管理.ppt
- (Linux网络操作系统应用教程)第7章进程管理.ppt
最近下载
- 【复旦大学-高级病理生理学学习】_脂质代谢紊乱及其相关疾病.ppt VIP
- 2025年昆明市规划设计研究院有限公司招聘(6人)备考练习题库及答案解析.docx VIP
- 全等三角形旋转模型(解析版) -2021年中考数学复习重难点与压轴题型专项训练.pdf VIP
- 医疗器械注册质量管理体系核查指南-解读.docx
- 国开学习网《成本管理》形考任务四答案.pdf
- 汽车换挡器基础知识跟设计要点资料精.pdf VIP
- 学术规范与论文写作(雨课堂)期末考试答案.docx VIP
- 苏州市“吴地工匠”职业技能竞赛暨第九届“吴中技能状元”职业技能竞赛人工智能训练(数据标注)理论题库及答案350题.docx VIP
- 2025工业企业二次数据治理实践指南白皮书.pdf VIP
- 2024学年广东省佛山市顺德区物理高二第一学期期末预测试题含解析.doc VIP
原创力文档


文档评论(0)