第5章定义用户年龄异常类.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章定义用户年龄异常类

第5章 任务5——定义用户年龄的异常类 5.1 任 务 描 述   学生在线考试系统中,用户注册需要输入年龄,若输入不合理的年龄,我们将在程序中抛出异常,并做相关处理。为此,本章任务是自定义一个关于年龄的异常类。 5.2 技 术 要 点   在进行程序设计时,错误的产生是不可避免的,其中错误包括语法错误和运行错误。一般称编译时被检测出来的错误为语法错误,这种错误一旦产生程序将不被运行。然而,并非所有错误都能在编译期间检测到,有些问题可能会在程序运行时才暴露出来。例如,想打开的文件不存在、网络连接中断、受控操作数超出预定范围、除数为0等。这类在程序运行时代码序列中产生的出错情况称为运行错误。这种运行错误倘若没有及时进行处理,可能会造成程序中断、数据遗失乃至系统崩溃等问题。这种运行错误也就是我们常说的“异常”。   在不支持异常处理的传统程序设计语言中,设计的程序要包含很长的代码来识别潜在的运行错误的条件。传统的检测错误的方法包括使用一些可以设置为真或假的变量来对错误进行捕获,相似的错误条件必须在每个程序中分别处理,这显然麻烦而且低效。例如在C语言中,通过使用if语句来判断是否出现了错误,同时,要调用函数并通过被调用函数的返回值感知在被调用函数中产生的错误事件并进行处理。这种错误处理机制会导致把大部分精力花在出错处理上;且只把能够想到的错误考虑到,对其他情况无法处理;程序可读性也很差,大量的错误处理代码混杂在程序中;出错返回信息量太少,无法更确切地了解错误状况或原因。   例5-1的程序中没有任何异常处理的相关代码,编译时能顺利通过,但运行时屏幕显示如图5-1所示的界面,并中断程序的运行。   例5-1 TestException.java 1 class TestException1{ 2 public static void main(String args[]){ 3 int a=8,b=0; 4 int c=a/b; //除数为0,出现异常 5 System.out.print(c); 6 } 7 } 图5-1 运行时错误提示   程序出错原因是因为除数为0。Java发现这个错误之后,便由系统抛出 “ArithmeticException”这个类的异常,用来说明错误的原因,以及出错的位置是在TestException1. java程序中的第4行,并停止运行程序。因此,如果没有编写处理异常的程序代码,则Java的默认异常处理机制会先抛出异常,然后终止程序运行。   上例中出现的异常比较简单,在编程中完全可以避免,但是有的异常在程序的编写过程中是无法预知的。例如,要访问的文件不存在,网络连接的过程中发生中断等。为了处理程序运行中一些无法避免的异常,Java语言提供了异常处理机制,为方法的异常终止和出错处理提供了清楚的接口,同时将功能代码和异常处理的代码进行分开编写。 5.2.1 异常类   1.异常类的层次结构   Java中的所有异常都是Throwable类或子类,而Throwable类又直接继承于Object类。Throwable类有两个子类:java.1ang.Error类与java.1ang.Exception类。Exception类又进一步细分为RuntimeException(运行异常)类和Non-RuntimeException(非运行异常)类。图5-2显示了各异常之间的继承关系。 图5-2 异常类的层次结构   2.Error类及其子类   Error类专门用来处理严重影响程序运行的错误,一般情况下我们不会设计程序代码去捕捉这种错误,其原因在于即使捕捉到它,也无法给予适当的处理。例如,虚拟机错误、动态链接失败等。表5-1列出一些常见的Error类。   3.Exception类及其子类   相对于Error类,Exception类包含了一般性的异常,这些异常通常在捕捉到之后可以做一些妥善的处理,以确保程序继续运行。从异常类的继承层次结构图中可以看出,Exception类的若干子类中包含运行时异常类(Runtime Exception)和非运行时异常类。   1) 运行时异常   运行异常是在Java运行系统执行过程中的异常,对于RuntimeException类的异常,即使不编写异常处理的程序代码,依然可以编译成功,因为该异常是在程序运行时才有可能发生的,例如算术异常(除数为0)、数组下标越界等。由于这类异常产生得比较频繁,并且通过仔细编程完全可以避免。如果显式地通过异常处理机制去处理,则会影响整个程序的运行效率。因此,对于RuntimeException类,一般由系统自动检测,并将它们交给缺省的异常处理程序

文档评论(0)

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

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

1亿VIP精品文档

相关文档