(Java Web程序设计基础教程)第12章对系统异常进行处理.ppt

(Java Web程序设计基础教程)第12章对系统异常进行处理.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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后面的大扩号中的代码,产生异常的代码后的代码就不会再执行了

您可能关注的文档

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档