java课件 (5).ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 异 常 处 理 本节主要内容 概述 异常处理 异常的抛出策略 异常的捕获策略 5.1 概 述 Java则在C++基础上建立了全新的异常处理机制。 Java运用面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。 异常是用来应对程序中可能发生的各种错误的一种强大的处理机制。 要写出友好、健壮的程序,灵活地运用Java程序语言的异常处理机制,须从以下几个方面来认识异常:抛出异常、捕获异常以及处理异常。 5.2 异 常 处 理 5.2.1 遭遇异常 在Java 中,异常分为检查的(Checked)和未检查的(Unchecked)两种类型。对于Checked类型的异常,编译器要求在方法中必须捕获之或是声明之;而对于Unchecked类型的异常,编译器并不强制方法捕获或是声明。 由于FileNotFoundException和IOException均属于Checked类型的异常,因而编译器会强制要求捕获之或是声明之;而ArrayIndexOutOfBoundsException属于Unchecked类型的异常,因而编译器并不会强制要求捕获该异常或是声明该异常。 5.2.2 捕获并处理异常 通常使用下面的代码框架来进行异常的捕获与处理: try { ...//可能出现异常的代码 } catch (...){//捕获异常 ... //异常处理代码 } 对于可能出现异常的代码,使用一个try块将其包括起来。try块中可以包含一条或是多条Java语句。 一个try块可以有多个对应的catch块,用以捕获不同类型的异常: try { ... } catch(ExceptionType1 name1 ) { ... } catch(ExceptionType2 name2) { ... } catch 子句的一般形式为: catch(ExceptionType exceptionName) { ... } catch子句中包含有唯一的参数: ExceptionType exceptionName ExceptionType指明了catch语句所能捕获的异常类型,ExceptionType必须是一个继承了java.lang.Throwable的类。当catch语句捕获一个异常时,将传递一个ExceptionType类型的对象进入catch块,该对象中包含了异常的全部信息,可以使用该对象中相应的方法获取异常信息 在catch块后,还可以跟随finally块: ... try{ ... }catch(...){ ... }finally{ ... } ... 无论try块中是否出现异常,finally块中的语句总是得到执行。 Java中的部分异常 Java的几个特别重要的异常类 Throwable:所有异常的基类。 Error:Throwable的子类,代表一个严重的问题。例如: OutOfMemoryError代表JVM的堆空间耗尽。 UnknownError代表Java虚拟机中出现一个未知但严重的异常。 Exception:Throwable的另一个子类,代表一个普通的问题。例如: FileNotFoundException代表文件未找到。 SQLException代表有关JDBC的异常。 RuntimeException:Exception类的一个特殊的子类,可能在任何正常的操作中被抛出。例如: NullPointerException表示试图引用null对象的方法或属性。 IndexOutOfBoundException表示数组越界的异常。在C语言中没有这样的特性,往往会造成严重且难以发现的程序漏洞。 5.2.3 声明方法抛出异常 然而,在有些情况下,仅根据当前的条件还无法处理出现的异常,这时候,就应该使用这样的方法:声明该方法会抛出异常;该方法的调用者来负责捕获异常或是继续抛出异常。 声明一个方法抛出异常,使用关键字throws,throws紧跟在方法签名之后。可以同时声明方法抛出多个异常,多个异常之间使用逗号隔开。 throws关键字用来声明方法抛出异常。在方法体中,如果需要显式抛出一个异常,使用关键字throw: throw aThrowableObject; aThrowableObject必须是一个“可抛出”的对象,也就是必须是由Throwable或是其子类所生成的对象。 5.3 异常的抛出策略 当程序抛出一个异常的时候,必须确保所有的异常“接收者”都收到有意义的信息。也就是说,必须选择合适的异常类型,以便方法的调用者程序可以根据异常的类型来做出正确的处理;必须设置有意义的异常信息

文档评论(0)

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

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

1亿VIP精品文档

相关文档