Java程序设计实训教程 教学课件 ppt 作者 978-7-302-27535-0 第6章 异常处理 第6章 异常处理

上传人:E**** 文档编号:89355508 上传时间:2019-05-23 格式:PPT 页数:26 大小:294.50KB
返回 下载 相关 举报
Java程序设计实训教程 教学课件 ppt 作者 978-7-302-27535-0 第6章 异常处理 第6章 异常处理_第1页
第1页 / 共26页
Java程序设计实训教程 教学课件 ppt 作者 978-7-302-27535-0 第6章 异常处理 第6章 异常处理_第2页
第2页 / 共26页
Java程序设计实训教程 教学课件 ppt 作者 978-7-302-27535-0 第6章 异常处理 第6章 异常处理_第3页
第3页 / 共26页
Java程序设计实训教程 教学课件 ppt 作者 978-7-302-27535-0 第6章 异常处理 第6章 异常处理_第4页
第4页 / 共26页
Java程序设计实训教程 教学课件 ppt 作者 978-7-302-27535-0 第6章 异常处理 第6章 异常处理_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《Java程序设计实训教程 教学课件 ppt 作者 978-7-302-27535-0 第6章 异常处理 第6章 异常处理》由会员分享,可在线阅读,更多相关《Java程序设计实训教程 教学课件 ppt 作者 978-7-302-27535-0 第6章 异常处理 第6章 异常处理(26页珍藏版)》请在金锄头文库上搜索。

1、第6章 异常处理,本章学习目标,了解异常和异常分类 了解Java异常处理机制和异常类 掌握try/catch/finally语句处理异常的方式以及如何声明异常 了解自定义异常,任务1:了解什么是异常 【任务内容】了解什么是异常 【能力目标】 了解什么是异常 了解异常类和错误类的区别,6.1 了解异常,我们总是试图避免在软件程序中错误的发生,但是百分之百没有错误的程序是不存在的。无论怎样,如果我们能适当的处理错误,将会极大的改善程序的可读性、可靠性以及可维护性。,观察下面的实例:ExceptionDemo.java 程序在运行过程中发生异常或错误后,如果不做任何处理,程序就会被终止,为了保证程序

2、有效地执行,就需要对发生的异常或错误进行相应处理。在Java程序中 ,异常处理允许程序捕获异常,处理它们,然后程序继续执行,它是分层把关,因此,错误情况不会介入到程序的正常流程中。,Java中异常类的继承关系,Error 类对象:由 Java 虚拟机生成并抛出;这样的异常超出了程序可控制的范围(硬件故障、内存泄露、死循环等)。在Java编程语言中,错误类定义被认为是不能恢复的严重错误条件。在大多数情况下,当遇到这样的错误时,建议让程序中断。 Exception 类对象:由应用程序处理或抛出;该类异常定义了程序中可能遇到的轻微的错误条件,可编写代码来处理异常并继续执行程序,而不是让程序中断。 (

3、想打开的文件不存在;网络连接中断;受控操作数超出预定范围;正在装载的类文件丢失)。,“异常”这个词有“对此感到意外”的含义。出现异常的代码部分不清楚该如何处理,但也知道不能置之不理。这段程序需要停下来,看看是不是别的地方的程序能够处理这个问题。只是在当前的环境下没有足够的信息来解决这个问题,所以就把问题提交到一个更高级别的环境中。 程序中的错误可能来自于编译错误和运行错误。编译错误是由于所编写的程序存在语法问题,未能通过由源代码到目标代码的编译过程而产生的错误,它将由语言的编译系统负责检测和报告;运行错误是在程序的运行过程中产生的错误。,任务2:了解异常的分类 【任务内容】了解异常的分类 【能

4、力目标】掌握异常类,6.1 了解异常,描述了Java虚拟机内部错误及资源耗尽的情形,应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出)。,包括RuntimeException和其他非RuntimeException,任务3:了解异常类常用的方法 【任务内容】了解异常类常用的方法 【能力目标】掌握异常类常用的方法,6.1 了解异常,public class ExceptionDemo public static void main(String args) String strPrice = “20“; try /进行数据类型转换时,parseFloat方法有可能出现异常 float fpr

5、ice = Float.parseFloat(strPrice); catch (NumberFormatException nfe) System.err.println(“Exception:“ + nfe.getMessage(); System.err.println(“Exception:“ + nfe.toString(); nfe.printStackTrace(); ,任务4:了解异常的捕获 【任务内容】了解异常的抛出和捕获 【能力目标】掌握异常的抛出和捕获,6.1 了解异常,对于异常有三种处理方法: (1) 捕获异常。通过try.catch语句,在catch子句中编写处理异常

6、的语句。 (2) 抛出异常。通过throw语句,抛出一个异常对象。 对于系统定义的异常类,Java程序在运行过程中会自动生成异常类对象并自动抛出;对于用户自定义异常类则要手动生成异常类对象然后再手动抛出提交到运行时系统。 (3) 声明异常。就是在方法名后面加上throws Exceptionname。方法本身只是声明抛出异常,由函数的调用者来捕获异常。,任务5:掌握try.catch语句 【任务内容】掌握try.catch语句 【能力目标】掌握try.catch语句 范例:ExceptionDemo2 .java,6.2 trycatch语句,Try-catch-finally语法格式,try

7、 调用有可能产生异常的方法及其他java语句; catch(异常类名 异常对象名) 异常处理; catch(异常类名 异常对名) 异常处理; finally 最终处理;,public class TryCatchFinally public static void main( String args ) Method( 0 ); Method( 1 ); Method( 2 ); static void Method( int a ) System.out.println(“调用方法 Method(“+a+“)“); try if( a=0 ) System.out.println(“t没有异

8、常产生,正常退出。“); return; else if( a=1 ) int i=0; int j=4/i; else if ( a=2 ) int iArray =new int4; iArray4=3; ,catch( ArithmeticException e ) System.out.println(“t捕获异常: “+e); catch( ArrayIndexOutOfBoundsException e ) System.out.println(“t捕获异常:“+e.getMessage( ); catch( Exception e ) System.out.println(“t产

9、生的异常已被处理,该catch块不会被执行。“); finally System.out.println(“tfinally块总是被执行。“); 注意:在使用多重catch语句块时,异常子类一定要位于异常父类之前,否则,控制权将永远传不到子类,将产生一个不能执行的代码,就会发生编译错误。,任务6:了解Java异常处理机制 Java程序在执行中,如果方法中的一个语句抛出一个没有在相应的trycatch块中处理的异常,那么这个异常就被抛出到调用方法中。如果异常也没有在调用方法中被处理,它就被抛出到该方法的调用程序。这个过程要一直延续到异常被处理。如果异常到这时还没被处理,它便回到main(),如果

10、main()不处理它,那么,该异常就异常地中断程序。,6.2 trycatch语句,任务7:声明抛出异常 【任务内容】声明抛出异常 【能力目标】掌握抛出异常的方法 范例:ThrowsException .java,6.3 throws关键字,程序员可以做满足该要求的两件事: 第一,通过将trycatch块纳入其代码中,在这里捕获给被命名为属于某个超类的异常,并调用方法处理它。即使catch块是空的,这也算是处理情况。 第二,让被调用的方法表示它将不处理异常,而且该异常将被抛回到它所遇到的调用方法中。它是通过用throws子句标记的该调用方法的声明来实现的。 使用throws关键字语法: 返回类

11、型 方法名(参数列表) throws 异常类名1, 异常类名2, 异常类名3,任务8:自定义异常类 【任务内容】采用继承Throwable类方式,新建自定义异常类 【能力目标】 掌握自定义异常类的基本结构 学会如何编写一个自定义异常类 【任务分析】 要完成这个任务,首先通过class关键字声明一个自定义异常类,接着在自定义异常类名的后面用extends关键字,让其继承Throwable这个父类即可。,6.4自定义异常与 throw关键字,class 自定义异常 extends 父异常类名 类体; 例如: class NumberRangeException extends Exception

12、NumberRangeException(String msg) super(msg); ,范例:创建自定义异常类,采用继承Throwable类 MyFirstException .java 范例:用继承Exception类方式,新建自定义异常类 MySecondException .java,任务9:抛出异常的方法 throw关键字 【任务内容】 使用throw关键字在方法中抛出异常 【能力目标】 学会使用throw关键字 掌握捕获异常,并进行相应的异常处理 【任务分析】 程序在运行中会出现很多种情况,这时程序往往需要根据不同的情况,抛出指定的异常类对象,在当前方法中或者是当前方法的调用者要

13、对其进行相应的处理,这时,就需要用到throw关键字,用它抛出指定的异常类对象。 范例: ThrowException .java,6.4自定义异常与 throw关键字,任务10:了解finally关键字 【任务内容】了解finally关键字 【能力目标】了解finally语句块的作用 范例:ExceptionDemo3 .java finally语句的主要作用是在try或catch转到其他部分前做的一些“善后”工作。例如:关闭打开的文件,释放连接、内存等系统资源。 finally语句的执行是一种无条件的操作,无论在哪种异常下都会执行,即使try或者catch语句块中有continue、ret

14、urn、break等关键字,或者throw语句,程序都会执行finally语句。 注意:终止程序的System.exit(0)方法在try语句块中被执行时,这是finally语句不被执行的唯一情况。,6.5 finally关键字,作 业,1. 编写一个自定义异常类MyException1,再编写测试类TestException,要求抛出MyException1类对象并捕获。 2. 编写一个自定义异常类MyException2,从键盘输入一个数,若输入的数不小于0,则输出它的平方根;若小于0,则抛出MyException2类对象,输出提示信息“输入错误”。提示:求平方根可以调用Math类的sqrt()方法。,

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

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

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