第7章 异常精选文档.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第7章 异常精选文档.ppt》由会员分享,可在线阅读,更多相关《第7章 异常精选文档.ppt(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本讲稿第一页,共二十四页Java EEJava EE基础教程基础教程23 九月 20222 异常是程序运行过程中产生的错误。比如在进行除法运算时,如果除数为0,则运行时Java会自动抛出一个算术异常,它会中断程序的正常运行,如果不对它进行处理,有时会产生严重的后果。例如:在转账过程中,将钱从一个账户转到另一个账户时,如果钱已经从一个账户转出,在转到另一个账户的过程中出现异常,程序被迫中止。此时,用户就会损失这笔钱。本讲稿第二页,共二十四页Java EEJava EE基础教程基础教程23 九月 202237.1 异常的处理机制异常的处理机制7.1 7.1 异常的处理机制异常的处理机制 在在Jav
2、aJava语言中,通过异常处理机制为程序提供错误处理的能力。语言中,通过异常处理机制为程序提供错误处理的能力。根据这个处理机制,对程序运行时可能遇到的异常情况,预先提供一些处理的方法。根据这个处理机制,对程序运行时可能遇到的异常情况,预先提供一些处理的方法。在程序执行代码的时候,一旦发生异常,程序会根据预定的处理方法对异常进行处在程序执行代码的时候,一旦发生异常,程序会根据预定的处理方法对异常进行处理,异常处理完毕后,程序继续运行。理,异常处理完毕后,程序继续运行。Java Java异常处理机制通过异常处理机制通过5 5个关键字进行控制:个关键字进行控制:trytry、catchcatch、t
3、hrowthrow、throwsthrows和和finallyfinally。下面阐述系统如何通过这。下面阐述系统如何通过这5 5个关键字对异常进行处理。程序将必须监控个关键字对异常进行处理。程序将必须监控异常的语句包含在异常的语句包含在trytry块中。如果在块中。如果在trytry块中发生异常,程序将引发一个异常,块中发生异常,程序将引发一个异常,通过使用通过使用catchcatch关键字,系统捕获异常,并将处理该异常的代码写在关键字,系统捕获异常,并将处理该异常的代码写在catchcatch块中。在块中。在finallyfinally块中,可以指定在程序结束之前必须执行的代码,无论异常是
4、否发生,这段代块中,可以指定在程序结束之前必须执行的代码,无论异常是否发生,这段代码一定会被执行。异常的引发可以有自动和手动两种方法,如果需要手动产生异常,可码一定会被执行。异常的引发可以有自动和手动两种方法,如果需要手动产生异常,可以通过使用以通过使用throwthrow关键字来实现。关键字来实现。throwsthrows关键字出现在方法的声明中,标识调用关键字出现在方法的声明中,标识调用该方法可能抛出的各种异常。该方法可能抛出的各种异常。返回本讲稿第三页,共二十四页Java EEJava EE基础教程基础教程23 九月 20224 7.2.1 Java内置异常 为了处理一些常见的异常,Ja
5、va语言中提供了一些内置的异常类供我们使用。这些类都继承自java.lang.Throwable类,而Throwable类又继承自Object类。Throwable类有两个重要的子类:Error类和Exception类。它们分别用来处理两种类型的异常。Error类及其子类通常用来描述Java运行时的内部错误,比如:在读取磁盘上的文件时,磁盘的扇区出现了损坏;从软盘中读取文件数据时,软驱中没有放入软盘。Error类又称为致命异常类,该类表示的异常是比较严重的异常,一旦发生该类型的异常,通过修改程序代码是不能恢复程序的正常运行的。在一般情况下,发生该异常后,程序应该马上终止。7.2 异常的处理异常
6、的处理返回本讲稿第四页,共二十四页Java EEJava EE基础教程基础教程23 九月 20225Exception类及其子类代表另一种类型的异常。该类用于用户程序可以捕获的异常情况。通过捕获和处理产生的异常,可以恢复程序的正常运行。该类有一个重要的子类RuntimeException,又称为运行时异常。在程序中出现除数为0的运算、数组下标越界等情况时,都会引发该类型的异常。本讲稿第五页,共二十四页Java EEJava EE基础教程基础教程23 九月 20226 Java语言中规定:只有Throwable、Error、Exception类及其派生类的实例,Java运行时系统才将它识别为系统
7、异常。表7-1中列出了一些常用的异常类及其用途。下面简单介绍常见的异常类,其他异常类将在后面的章节中陆续介绍。1)ArithmeticException类该类用于描述算术异常,比如当除数为0时,会抛出该异常。int result=8/0;/除数为0,抛出ArithmeticException异常2)NullPointerException类用来描述空指针异常,当引用的对象是null时,如果试图通过“.”操作符访问该对象的成员时,会抛出该异常。String str=null;int len=str.length();/因为str为null对象,不能调用它的length()方法。本讲稿第六页,共二
8、十四页Java EEJava EE基础教程基础教程23 九月 202273)ArrayIndexOutOfBoundException类 该类用来描述数组下标越界时出现的异常。float arr=new float4;arr4=9;/数组的最大下标是3,而此处的4超过了该值4)NubmerFormatException类 该类用于描述字符串转换为数字时的异常。String str=”23U”;double d=Double.parseDouble(str);/“23U”不能转换为double类型的数 本讲稿第七页,共二十四页Java EEJava EE基础教程基础教程23 九月 202287.
9、2.2 try和catch语句 在Java语言中,对容易引发异常的代码,可通过trycatch语句捕获。在try语句块中编写可能引发异常的代码,然后在catch语句块中捕获这些异常,并进行相应的处理。trycatch语句块的语法格式如下:try可能产生异常的代码catch(异常类1 异常对象1)异常处理代码段1catch(异常类2 异常对象2)异常处理代码段2catch(异常类n 异常对象n)异常处理代码段n 本讲稿第八页,共二十四页Java EEJava EE基础教程基础教程23 九月 20229try语句块中的代码执行后可能同时产生多种异常,程序捕获哪一种类型的异常,是由catch语句中的
10、“异常类”参数指定。catch语句类似于方法的声明,包含一个异常类型和该类型的一个对象,通过在catch块中调用该对象的方法可以获取该异常的详细信息。代码中的每个catch语句块都用来捕获一种类型的异常。如果try语句块中的代码执行时发生异常,则会由上而下依次查找能捕获该异常的catch语句块,并执行该catch语句块中的代码。本讲稿第九页,共二十四页Java EEJava EE基础教程基础教程23 九月 202210 例7-1 根据输入的总分和人数,计算平均成绩程序清单:ch07ComputeAvg.javaimport java.util.InputMismatchException;im
11、port java.util.Scanner;public class ComputeAvg public static void main(String args)int score,num;double avg;Scanner in=new Scanner(System.in);trySystem.out.println(请输入总分:);score=in.nextInt();/ASystem.out.println(请输入人数:);num=in.nextInt();/Bavg=score/num;/CSystem.out.println(平均成绩为:+avg);catch(InputMis
12、matchException e1)System.out.println(输入不是数字!);catch(ArithmeticException e2)System.out.println(人数不能为0);catch(Exception e3)System.out.println(其他异常:);本讲稿第十页,共二十四页Java EEJava EE基础教程基础教程23 九月 202211以上介绍了如何使用trycatch结构实现异常处理。在使用该结构时,还必须注意以下几点:1)catch块一定要与try块一起使用,不能够单独使用catch块。2)一个try块可以有多个catch块。但是,多个cat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第7章 异常精选文档 异常 精选 文档
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内