Java应用开发与实践 教学课件 ppt 作者 刘乃琦 苏畅 第11章 输入输出

上传人:E**** 文档编号:89369455 上传时间:2019-05-24 格式:PPT 页数:24 大小:1.15MB
返回 下载 相关 举报
Java应用开发与实践 教学课件 ppt 作者  刘乃琦 苏畅 第11章  输入输出_第1页
第1页 / 共24页
Java应用开发与实践 教学课件 ppt 作者  刘乃琦 苏畅 第11章  输入输出_第2页
第2页 / 共24页
Java应用开发与实践 教学课件 ppt 作者  刘乃琦 苏畅 第11章  输入输出_第3页
第3页 / 共24页
Java应用开发与实践 教学课件 ppt 作者  刘乃琦 苏畅 第11章  输入输出_第4页
第4页 / 共24页
Java应用开发与实践 教学课件 ppt 作者  刘乃琦 苏畅 第11章  输入输出_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《Java应用开发与实践 教学课件 ppt 作者 刘乃琦 苏畅 第11章 输入输出》由会员分享,可在线阅读,更多相关《Java应用开发与实践 教学课件 ppt 作者 刘乃琦 苏畅 第11章 输入输出(24页珍藏版)》请在金锄头文库上搜索。

1、,本章要求:,第10章 异常处理,了解异常的概念 掌握捕捉异常的方法 了解Java中常见的异常 掌握自定义异常的方法 了解如何在方法中抛出异常 了解运行时异常种类 了解异常处理的使用原则,主要内容,1、异常概述 2、异常分类 3、获取异常信息 4、处理异常 5、抛出异常 6、自定义异常 7、异常的使用原则,第10章 异常处理,假设一辆轿车发生了故障,可能是某个零件发生了问题,也可能是没有油了,如果是由于零件问题,只需要更换零件就可以解决,如果是没有油了,只需要加满油就可以正常行驶了,程序中的异常与此类似,就对程序中可能发生异常的语句进行处理,使程序能够正常执行。 在程序开发过程中,可能存在各种

2、错误,有些错误是可以必免的,而有些错误却是意想不到的,在Java中把这些可能发生的错误称为异常。图10-1说明了异常类的继承关系。,10.1 异常概述,10.2.1 可控式异常 10.2.2 运行时异常,10.2 异常分类,在Java中把那些可以预知的错误,例如从文件中读取数据,对数据库进行操作等,在程序编译时就能对程序中可能存在的错误进行处理,并给出具体的错误信息,我们把这些错误称为可控式异常,表10-1是几个常用的可控式异常及说明。 表10-1 常见可控式异常及说明,10.2.1 可控式异常,在Java中有些错误是不能被编译器检测到的,例如,在进行除法运算时,除数为零;试图把一个不是由数字

3、组成的字符串使用Integer类的parseInt()方法转换为整数等等,Java的编译器是检测不到的,因而能够正常编译,但是在运行时就会发生异常,我们把这些异常称为运行时异常,表10-2是几个常用的运行时异常及说明。 表10-2 常见运行时异常及说明,10.2.2 运行时异常,获取异常信息就好比工厂里某个线路出现故障停电了,电工要从线路中找出现故障的原因,找到了出现故障的原因,就象程序中获取到了异常信息。 在Java中java.lang.Throwable类是所有异常类的超类,该类提供了获得异常信息的方法,表10-3列出了获取异常信息的方法及说明。 表10-3 获取异常信息的方法及说明,10

4、.3 获取异常信息,10.4.1 使用try-catch处理异常 10.4.2 使用try-catch-finally处理异常 10.4.3 使用try-finally处理异常,10.4 处理异常,对于程序中可能发生异常的语句,可以将其添加到try-catch语句块中,这样当程序发生异常时,就可以对其进行相应的处理。try-catch语句块的语法格式如下: try 需要正常执行的语句 catch(Exception ex) 对异常进行处理的语句 try和catch是进行异常处理的关键字; try和catch之间的两个大括号内是程序需要正常执行但又可能发生异常的语句; catch后的两个小括号内

5、是程序需要处理的异常类型; catch后的两个大括号内是对程序发生的异常进行处理的语句。,10.4.1 使用try-catch处理异常,对于程序中可能发生异常的语句,可以将其添加到try-catch语句块中,这样当程序发生异常时,就可以对其进行相应的处理。try-catch-finally语句块的语法格式如下: try 需要执行的语句 catch(Exception ex) 对异常进行处理的语句 finally 一定会被处理的语句 try、catch和finally是进行异常处理的关键字; try和catch之间的两个大括号内是程序需要正常执行但又可能发生异常的语句; catch后的两个小括号

6、内是程序需要处理的异常类型; catch后的两个大括号内是对程序发生的异常进行处理的语句; finally后的两个大括号内的语句,不管程序是否发生异常都要执行的语句 ,因此finally语句块通常用于执行垃圾回收、释放资源等操作。,10.4.2 使用try-catch-finally处理异常,对于程序中可能发生异常的语句,可以将其添加到try-finally语句块中,这样当程序发生异常时,就可以在finally语句块中对其进行相应的处理,另外当程序没有发生异常时,执行完try和finally之间的语句后,也将执行finally语句块中的代码,因此可以在finally语句块中放置一些必须执行的代

7、码,比如释放内存资源的代码等等。try-finally语句块的语法格式如下: try 需要执行的语句 finally 一定会被处理的语句 try和finally是进行异常处理的关键字; try和finally之间的两个大括号内是程序需要正常执行但又可能发生异常的语句; finally后两个大括号内的语句是不管程序是否发生异常最终都要执行的语句,因此finally语句块通常用于放置程序中必须执行代码,如关闭数据库连接、关闭IO流等等。,10.4.3 使用try-finally处理异常,在有try-finally语句块的程序中,只要程序执行了try语句块中的代码,不管try语句块是否发生异常,与该

8、try语句块对应的finally语句块都一定会被执行,因此通常使用finally语句块进行资源释放。,10.5.1 使用throws声明抛出异常 10.5.2 使用throw语句抛出异常,10.5 抛出异常,throws通常用于方法声明,当方法中可能存在异常,却不想在方法中对异常进行处理时,就可以在声明方法时使用throws声明抛出的异常,然后在调用该方法的其他方法中对异常进行处理(如使用try-catch语句或使用throws声明抛出的异常)。 如果需要使用throws声明抛出多个异常,各异常之间要用逗号分隔。throws声明抛出异常的语法格式如下: 数据类型 方法名(形参列表 ) thro

9、ws 异常类1,异常类2,异常类n 方法体; 数据类型是基本数据类型或对象类型; 方法名是Java语言的合法标识符; throws是抛出异常的关键字; 异常类是Java的异常类或自定义异常类; 方法体是该方法需要执行的语句。,10.5.1 使用throws声明抛出异常,在通常情况下,程序发生错误时系统会自动抛出异常,而有时希望程序自行抛出异常,可以使用throw语句来实现。 throw语句通常用在方法中,在程序中自行抛出异常,使用throw语句抛出的是异常类的实例,通常与if语句一起使用。throw语句的语法格式如下: throw new Exception(“对异常的说明“); 其中 thr

10、ow是抛出异常的关键字; Exception是异常类(通常使用自定义异常类)。,10.5.2 使用throw语句抛出异常,10.6.1 创建自定义异常类 10.6.2 使用自定义异常类,10.6 自定义异常,创建自定义的异常类需要继承自Exception类,并提供含有一个String类型形参的构造方法,该形参就是异常的描述信息,可以通过getMessage()方法获得。例如: public class NewException extends Exception public NewException(String s) super(s); 上面代码创建了一个自定义异常类NewExceptio

11、n,也就是说NewException是自定义异常类的名称,该类继承自Exception类,该类构造方法的形参s是需要传递的异常描述信息,该信息可以通过异常类的getMessage()方法获得。,10.6.1 创建自定义异常类,创建完自定义异常类,我们就可以在程序中使用自定义异常类了。使用自定义异常类可以通过throw语句抛出异常,接下来通过实例来说明自定义异常类的使用。,10.6.2 使用自定义异常类,【例10-8】 在项目中自定义异常类,然后编写测试类。 (1)编写自定义异常类NewException,该类继承自Exception类。在构造方法中,输出异常信息。 public class N

12、ewException extends Exception private static final long serialVersionUID = -400794805034166270L / 创建自定义异常类 public NewException(Double r) / 有一个Double类型形参的构造方法 System.out.println(“发生异常: 圆的半径不能小于20“); System.out.println(“圆的半径为: “ + r); ,(2)编写NewExceptionTest类,在showArea()方法中抛出异常,在main()方法中处理异常。 public c

13、lass NewExceptionTest public static void showArea(double r) throws NewException / 创建求圆面积的方法 if (r = 20) throw new NewException(r); / 抛出异常 double area = 3.14 * r * r; / 计算圆的面积 System.out.println(“圆的面积是:“ + area); / 输出圆的面积 public static void main(String args) try showArea(10); / 调用showArea()方法,传递半径10

14、catch (NewException ex) System.out.println(ex); / 输出异常信息 ,程序的运行效果如图10-9所示。,在程序中使用异常,可以捕获程序中的错误,但是异常的使用也要遵循一定的规则,下面是异常类的几项使用原则。 不要过多的使用异常,这样会增加系统的负担。 在方法中使用try-catch捕获异常时,要对异常做出处理。 try-catch语句块的范围不要太大,这样不利于对异常的分析。 一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或子异常。,10.7 异常的使用原则,(1)Java中使用异常来处理程序运行过程中可能遇到的各种问题。 (2)Java中的异常

15、类都继承了Throwable类。 (3)Throwable类有两个直接子类,Error和Exception。其中Error表示程序员不能处理的异常,例如虚拟机错误;Exception表示程序员能够处理的异常,例如指定文件不存在。 (4)Exception类的子类可以分成两类:可控式异常和运行时异常。其中可控式异常一般需要程序员进行处理;运行时异常一般可以避免发生。 (5)使用try-catch-finally来处理异常,其中catch和finally语句块至少存在一个。 (6)throws关键字可以在定义方法时抛出异常,throw关键字可以在方法中抛出异常。 (7)可以通过继承Exception类来自定义异常。自定义异常的用法与Java API中提供的异常类类似。 (8)由于异常会增加系统额外开销,请不要随意使用。,知识点提炼,10-1 Java中的异常类都继承了哪个类? 10-2 Exception类的子类分成哪两类?它们有何区别? 10-3 说出5种常见的异常类型。 10-4 有哪些方法可以查看异常信息? 10-5 如何处理异常? 10-6 如何抛出异常? 10-7 如何自定义异常? 10-8 使用异常时有哪些原则?,习题,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号