第4章Java异常处理教学课件.ppt

上传人:春哥&#****71; 文档编号:12724728 上传时间:2022-04-25 格式:PPT 页数:18 大小:240.50KB
返回 下载 相关 举报
第4章Java异常处理教学课件.ppt_第1页
第1页 / 共18页
第4章Java异常处理教学课件.ppt_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《第4章Java异常处理教学课件.ppt》由会员分享,可在线阅读,更多相关《第4章Java异常处理教学课件.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Java面向对象程序设计第4章 Java异常处理教学内容n了解什么是异常n理解异常的分类n掌握异常处理n理解自定义异常异常的引入本章开始学习本章开始学习Java的异常处理机制,在介绍异常处理机制之前,先看下面的一的异常处理机制,在介绍异常处理机制之前,先看下面的一个引例。个引例。【例【例4-1】:异常案例的引入】:异常案例的引入public class Demo4_01 public static void main(String args) String Course=Java程序设计程序设计,JSP程序设计程序设计,A程程序设计序设计,C#程序设计程序设计;for(int i=0;i=4;

2、i+) System.out.println(Coursei); System.out.println(n this is the end);程序运行的结果:程序运行的结果:异常的概念Java异常是Java提供的用于处理程序中错误的一种机制。所谓错误是指在程序运行的过程中发生的一些异常事件(如:除0溢出,数组下标越界,所要读取的文件不存在)。设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的发生而阻断或产生不可预见的结果Java程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并将被提交给Java运行时系统,这个过程称为抛出(thr

3、ow)异常。当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。异常的分类Java标准库内建了一些通用的异常,这些类以Throwable为顶层父类,Throwable又派生出Error类和Exception类。Error称为错误,由Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,程序对其不做处理。Exception是所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显式的声明或捕获。Java异常类的类结构图如图4-1所示: 程序能处理的Exception异常类的子类,包括IOExcepti

4、on和RuntimeException异常,RuntimeException称为运行期异常,一类特殊的异常,如被0除、数组下标超范围等,其产生比较频繁,处理麻烦,如果显式的声明或捕获将会对程序可读性和运行效率影响很大,因此由系统自动检测并将它们交给缺省的异常处理程序。异常的处理 程序在运行中一旦发生一个错误,系统会自动生成一个异常对象,这个对象封装了和这个异常相关的信息并且会被提交给JAVA运行时系统,这个过程称为抛出异常。 当JAVA运行时系统接收到抛出的异常对象时,会寻找能处理这一异常的代码并把该异常对象交给其处理,这一过程称为捕获异常。JAVA的异常处理掌握5个关键字try、catch、

5、finally、throws、throw的使用。语法格式1,try语句后面跟一个catch语句:try /语句块; /可能产生异常的代码catch(异常类名 对象名) /语句块;/对异常的处理finally /语句块;2、语法格式2,try语句后面跟多个catch语句:try/语句块; . catch(异常类名1 对象名1) /语句块; catch(异常类名2 对象名2) /语句块; catch(异常类名3 对象名3)/语句块 catch.finall /语句块; 关于trycatchfinally结构,有以下几点说明:1)try语句块中的语句是可能发生异常的语句,或者说是需要监控的语句。如果

6、执行到该语句块中的某条语句发生异常,则立即停止该语句块的执行,流程会根据发生异常的类型转到相应的catch语句块。2)try语句块后可以有多个catch语句块,每一个catch语句块声明其能处理的异常类型并提供了处理的方法。如果执行try语句块中的语句没有发生异常,显然所有catch语句块也不会被执行。3) “catch(异常类 参数名)”这里的参数用来接收抛出异常对象的引用,通过该引用可以获取与抛出异常相关的信息。所以只有当抛出的异常类型和“catch(异常类 参数名)”中异常类类型相同或者是其子类的时候该catch语句块才会被执行。4)由于异常对象与catch块的匹配是按照catch语句块

7、的先后排列顺序进行的,有多个catch语句块时,最多只会执行其中一个,所以在处理多异常时应注意各catch语句块的排列顺序,如果处理的异常存在继承关系,应该先处理子类异常后处理父类异常,否则编译不能通过。 5)finally代码块无论是否发生异常都会被执行,它为异常处理提供了一个统一的出口,所以在语句块中可以进行资源的清除工作,如关闭打开的文件或删除临时文件等。【例4-2】:通过案例来掌握trycatchfinally的使用import java.util.InputMismatchException;import java.util.Scanner;public class Demo4_02

8、 public static void main(String args) try Scanner sc = new Scanner(System.in);System.out.println(输 入第一个数:);int a = sc.nextInt();System.out.println(输入第二个数:);int b = sc.nextInt();System.out.println(两数相除的结果为: + a / b); catch (InputMismatchException e) / 输入不匹配异常System.out.println(你应该输入整数); catch (Arithm

9、eticException e) / 算术异常System.out.println(除数不能为0); catch (Exception e) /其他异常System.out.println(未知名错误); finally System.out.println(程序运行结束了);程序运行的结果:throws和throw的使用throws是声明该方法可能抛出的异常,如果该方法确实有异常发生,会生成一个异常对象并自动抛出该异常,也可以采用throw显示抛出;如果自行定义异常类对象,然后强制抛出,就要采用throw关键字抛出异常。throws的语法格式:修饰符 方法返回值类型 方法名(参数列表)thr

10、ows 异常类1,异常类n /方法体用throws声明该方法体可能有异常产生,如果有多个异常类,异常类之间用逗号分隔。throw关键字抛出异常的语法格式如下:throw new 异常类(参数列表);throws和throw关键字经常配合起来使用。【例4-3】:通过案例来掌握throws的使用class Mathspublic int div(int i,int j) throws Exception / 定义除法操作,如果有异常,则交给被调用处处理int temp = i / j ; / 计算,但是此处有可能出现异常return temp ; public class Demo4_03 pub

11、lic static void main(String args) throws Exception Maths m = new Maths() ; / 实例化Math类对象 System.out.println(除法操作: + m.div(10,0) ; 程序运行结果:【例4-4】:通过案例来掌握throws和throw的使用public class Demo4_04 public static void printScore(int score) throws Exception if(score100) throw new Exception(输入的成绩有误,必须在0-100之间的整数)

12、; else System.out.println(该生的成绩是:+score); public static void main(String args) int score=-1; try printScore(score); catch(Exception e) System.out.println(捕获的异常信息为:+e.getMessage(); 程序运行结果:自定义异常只需要继承Exception类就可以自定义异常类。因为JAVA中提供的都是标准异常类(包括一些异常信息),如果需要自己想要的异常信息就可以自定义异常类。【例4-5】:通过案例来掌握自定义异常类的使用class MyE

13、xception extends Exception / 自定义异常类继承Exception类public MyException(String msg)super(msg) ; / 调用Exception类中有一个参数的构造方法 ;public class Demo4_05 public static void main(String args)trythrow new MyException(自定义异常。) ; / 抛出异常 catch(Exception e) System.out.println(e) ;/打印错误信息 程序运行结果:任务总结 主要学习了Java的异常处理机制,学习了什

14、么是异常,异常的分类和异常的几种处理方法,以及自定义异常。Java异常是用于处理程序中在程序运行的过程中发生的一些异常事件(如:除0溢出,数组下标越界,所要读取的文件不存在)的一种机制。Error称为错误,由Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,程序对其不做处理。RuntimeException称为运行期异常,一类特殊的异常。JAVA的异常处理掌握5个关键字try、catch、finally、throws、throw的使用。throws声明该方法可能抛出的异常,throw是抛出异常。任务练习1.同一段程序可能产生不止一种异常。可以放置多个_子句,其中每一种异常类型都将被检查

15、,第一个与之匹配的就会被执行。2.捕获异常要求在程序的方法中预先声明,在调用方法时用try-catch-_语句捕获并处理。3.java语言认为那些可预料和不可预料的出错称为_4.按异常处理不同可以分为运行异常、捕获异常、声明异常和_几种。5.抛出异常的程序代码可以是_类或者是JDK中的某个类,还可以是JVN.6.抛出异常、生成异常对象都可以通过_语句实现。7.捕获异常的统一出口通过_语句实现。8.Throwable类有两个子类:_类和Exception类。9.对程序语言而言,一般有编译错误和_错误两类。10.一个try语句块后必须跟_语句块,_语句块可以没有11.自定义异常类必须继承_类及其子

16、类12.从命令行得到6个整数,放入一整型数组,然后打印输出,要求:如果输入数据丌为整数,要捕获Integer.parseInt()产生的异常,显示“请输入整数”,捕获输入参数大于6个的异常(数组越界),显示“请输入最多输入6个整数”。13.(自定义异常)创建两个自定义异常类MyException1 和MyException2。要求: 1) MyExceptionOne为已检查异常,MyExceptionTwo为未检查异常 2) 这两个异常均具有两个构造函数,一个无参,另一个带字符串参数,参数表示产生异常的详细信息。14.创建一个类,其中的try块内抛出Exception类的一个对象,为Exception的构造方法赋予一个字符串参数,用catch语句捕获该异常,并打印出字符串参数,添加一个finally从句,并打印一条消息,证明程序到达那里。15.编写一个能够产生字符串越界异常(StringIndexOutOfBoundsException)的程序,并对产生的异常进行处理。

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

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁