第11章意外的情况——异常处理.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 意外的情况——异常处理 11.1 异常处理的概念 11.2 Java异常的体系结构 11.3 Java程序中如何处理异常 11.4 定义自己的异常 11.5 编写健壮的Java程序 11.6 小结 11.7 习题 11.1 异常处理的概念 11.1.1 为什么要处理异常 11.1.2 异常处理的简单范例 11.1.1 为什么要处理异常 程序实际运行过程中肯定会遇到这样那样的偶然情况,实际执行当中不可能完全像我们当初设计程序时预想的那样准确无误地从头运行直到结束。当遇到这些情况的时候,我们的程序需要进行相应的处理,能够让程序尽可能正常运行下去,不要因为一处小小的意外导致程序不能正常工作或是得到错误的结果。这就是异常处理的主要目的,让我们的Java程序适应能力变得更强,可以容忍一定的错误情况。 1.Java程序中经常遇到的异常情况 2.Java中如何处理异常 3.异常与错误有什么区别 11.1.2 异常处理的简单范例 Java中异常处理的过程可以抽象为4个阶段: (1)异常发生。 (2)异常捕获。 (3)异常处理。 (4)恢复正常。 这个过程可以使用下面的流程图来表示, 请大家先看看图11.1中的流程图。 图11.1 11.2 Java异常的体系结构 11.2.1 Exception类及其子类 11.2.2 部分Java中的异常类的含义 11.2.3 Java中可能会抛出异常的方法 11.2.1 Exception类及其子类 Java中所有的异常类都是由java.lang. Exception类派生出来的,这就像所有的类都是由Object类派生出来一样。很自然,Exception类也是由Object类的子类——Throwable类派生出来。需要告知大家的是,虽然这些异常类都是Exception类的子类,但它们可不一定包含在同一个包中哦!这是因为Java中的各种操作都有可能会发生异常,将所有的异常类放在一个包中是不现实的。 图11.2 Java异常处理流程图 11.2.2 部分Java中的异常类的含义 Java中的异常类有些类似上一章中讲的I/O类,它们之间的情况都是大同小异,适合用在不同的异常情况下。给大家列出部分常用的,比较典型的异常类,通过它们来学习Java中的异常处理。下面我们将部分异常类的信息列到了下表中,请诸位过目先。 11.2.3 Java中可能会抛出异常的方法 下面的表中列举出几个会抛出异常的方法,我们先来看下这几个简单的异常吧! 11.3 Java程序中如何处理异常 11.3.1 捕获异常 11.3.2 获取异常信息 11.3.3 try、catch和finally 11.3.4 异常处理举例 11.3.1 捕获异常 现在我们来看如果Java程序的执行过程中遇到意外,抛出的异常如何被捕获。要想处理Java程序运行过程中抛出的异常,首先要捕获它们。前面讲过异常处理的流程当中,try区块中的内容是异常产生并被抛出的地带。这里面产生的异常将由紧随其后的catch语句所捕获。 1.多个catch语句的顺序,如图11.3所示 2.在多层方法调用中的异常抛出顺序 ,如图11.4所示 图11.4 图11.3 11.3.2 获取异常信息 在捕获异常之后,处理异常之前,必然是要先得到异常的相关信息。这些信息不仅仅用来在程序的异常处理中用得着,它们最大的作用是可以帮助我们分析异常产生的原因,改善程序的设计。我们在捕获异常的时候,catch语句所接收的只有一个参数——Java的异常对象。这也就意味着如果我们要想在catch语句捕获异常之后来获取异常信息时只能从异常对象当中取得异常的相关信息。 11.3.3 try、catch和finally 我们已经知道Java的异常处理过程一共有3个大的部分:try, catch和finally。其中try区块是有可能发生异常的代码所存放的位置;它的后面可以跟一个或多个catch语句,这些catch语句各自负责处理自己所能够捕获的指定类型的异常。在try区块的后面必须紧跟catch语句,中间不能有其它任何代码,而且一个catch语句前面只能有一个try区块。 在catch语句的后面,可以有选择地加上finally区块。inally区块是不论是否有异常发生都会执行的部分。这部分的作用一般是

文档评论(0)

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

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

1亿VIP精品文档

相关文档