Java程序设计(第3版) 课件 -第三部分 异常处理.pptx

Java程序设计(第3版) 课件 -第三部分 异常处理.pptx

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

;第13章Java应用异常处理;Java标准异常类型

JavaAPI中提供了很多异常类及错误类,所有的异常类和错误类都继承于java.lang.Throwable类,该类的所有子类对象都可以“被当成异常抛出”。Throwable类有两个直接子类:Error类和Exception类。Error类表示错误,可能是编译期错误或系统错误,往往在程序中并不处理。Exception类表示异常,是所有异常类的父类,是程序员所关心的。Exception类有很多子类,这些子类可以分为两种类型。

1.运行期异常

Exception类有一个子类java.lang.RuntimeException,称为运行期异常。RuntimeException类及其所有子类都被称为运行期异常类。顾名思义,运行期异常是程序运行期抛出的异常,这些异常都由Java虚拟机自动抛出。如除数为0时,在程序运行期,Java虚拟机会抛出数学异常(ArithmeticException),数组索引越界时会抛出索引越界异常(ArrayIndexOutOfBoundsException),数字格式转换出错时会抛出数字格式异常(NumberFormatException)等。

2.检测异常

除了RuntimeException类及其子类外,其他的异常类型都可以称为检测异常(CheckedException)。检测异常是在程序中使用throw(相关内容参考后续章节)关键字抛出的异常,编译器将强制处理这些异常。API中定义了大量的检测异常,如IOException异常、SQLException异常等,java.io包中很多类的方法都抛出了IOException异常或其子类异常,标记不同的异常事件。;异常处理

处理异常的作用是标记不正常的事件,如果抛出了异常却不被处理,程序将中断,不正常地退出。所以异常发生后,必须处理异常,保证程序按照不同的流程正常运行下去。Java中使用try、catch、finally语句处理异常。本节将详细介绍异常处理语句的使用。

1.try

try块用来包含不正常的代码,即可能发生异常的代码块。

2.catch

Catch块必须紧跟在try块之后,称为捕获异常,也就是异常处理函数。

3.finally

finally是异常处理中用来强制执行某些代码的语句。;抛出异常

运行期异常在运行时由Java虚拟机自动抛出,检测异常必须在编译期抛出,前面章节中演示使用的异常都是运行期异常,本节将介绍如何抛出检测异常。Java语言使用throw关键字抛出异常,语法如下:

只要是Throwable类及其???类,都可以使用throw关键字抛出。而实际应用中,往往抛出的是Exception类及其子类,而不会抛出Error。运行throw语句后,即抛出异常。如以下代码:

上述代码抛出了Exception类型的异常。抛出异常后如果不加以处理,程序将中断。第13.5节将介绍为何在程序中使用throw关键字抛出异常。;为何要抛出异常

在程序中抛出异常,往往是因为业务逻辑中存在一些不正常事件流,而利用抛出异常来标记这些事件流,可以对这些事件流进行统一处理。如以下代码:;如何处理抛出的异常

如果程序中使用throw语句抛出了异常,那么有两种处理方式。

1.将抛出异常的代码封装到try块中

要解决该编译错误,第一种方式就是把throw语句放到try块中。

2.使用throws关键字声明异常

抛出异常后,不使用try-catch语句处理,而是在方法声明处使用throws关键字声明异常。;自定义异常类

从语法上来说,只要是Throwable及其子类的对象均可抛出。然而,如果盲目地抛出API中的异常类型,会使程序混乱。如以下代码:

上述代码中调用了withdraw方法,由于该方法使用throws关键字声明抛出了Exception类型的异常,使用try-catch语句捕获了Exception异常。代码试图从账户中取出1000元,账户余额为3000元,不会发生余额不足的情况,也不会发生异常。然而,由于在try块中多了一条会发生数学异常的语句intx=100/0;,所以,运行结果如下:;throw与throws总结

throw和throws是Java异常处理中两个非常重要的关键字。虽然写法类似,有着一定的联系,但是作用及含义完全不同。本节将对这两个关键字进行比较及总结。

1.throw关键字在方法体中使用

throw关键字是在方法体中使用的,用来抛出异常对象。

2.throw关键字抛出异常后的处理

一个方法中若使用throw关键字抛出了某个类型的异常,如果是运行期异常,那么可以不加任何处理。如果是检测异常,那么有两种选择:使用try-catch语句捕获异常或者使用throws关键字声明抛出异常,一般多

文档评论(0)

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

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

1亿VIP精品文档

相关文档