Java的异常处理课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Java的异常处理课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 异常 处理 课件
- 资源描述:
-
1、 第五章第五章 Java的异常处理的异常处理第1页,共70页。为什么要异常处理?对于任何语言的程序设计而言,错误的发生总是不可避免的对于任何语言的程序设计而言,错误的发生总是不可避免的.比如说:用户输入出错 所需文件找不到 运行时磁盘空间不够 内存耗尽无法进行类的实例化内存耗尽无法进行类的实例化 算术运算错(数的溢出,被零除)数组下标越界 JVMJVM崩溃崩溃 当Java程序出现以上的错误时,就会在所处的方法中产生一个异常对象。这个异常对象包括错误的类型,错误出现时程序的运行状态以及对该错误的详细描述。下面我们先看一个简单的例子。第2页,共70页。例5.1public class Except
2、ionDemo public static void main(String args)int x=100;System.out.println(The result is+x/10);System.out.println(Divided by zero:+x/0);第3页,共70页。当我们对其编译后运行时,其对应的结果如下:其意思是说,本程序执行到语句“System.out.println(Divided by zero:+x/0)”时,系统会抛出一个例外,该例外在Java中定义为Arithmetic Exception(即属于算术运算例外)。c:jbuilder3javabinjava E
3、xception DemoThe result is10Exception in thread main java.lang.Arithmetic Exception:/by zero at Exception Demo.main(Exception Demo.java:5)第4页,共70页。5.1 什么是异常异常(异常(ExceptionException)又称为例外,是指在程序)又称为例外,是指在程序运行过程中发生的非正常事件,它会运行过程中发生的非正常事件,它会中断指令的正常执行,影响程序的正常运行。影响程序的正常运行。第5页,共70页。异常对象在在JavaJava语言中,我们用异常对象
4、来表示不同语言中,我们用异常对象来表示不同的异常。的异常。所谓所谓JavaJava异常对象就是一个存放着相关错误异常对象就是一个存放着相关错误信息的对象,如果方法运行时产生了异常,信息的对象,如果方法运行时产生了异常,该方法就可以抛出一个异常对象该方法就可以抛出一个异常对象为了表示不同种类的异常,为了表示不同种类的异常,JavaJava语言中定义语言中定义了许多异常类。了许多异常类。第6页,共70页。异常处理的一般步骤:异常抛出异常抛出异常捕获异常捕获异常处理异常处理5.2 异常处理机制第7页,共70页。异常处理机制在Java程序的执行过程中,如果出现了异常事件,就会生成一个异常对象。生成的异
5、常对象将传递给Java运行时系统,这一异常的产生和提交过程称为抛出(throw)异常。第8页,共70页。异常处理机制当Java运行时系统得到一个异常对象时,它将会寻找处理这一异常的代码。找到能够处理这种类型的异常的方法后,运行时系统把当前异常对象交给这个方法进行处理,这一过程称为捕获(catch)异常。如果Java运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。第9页,共70页。方法的调用堆栈main()main()methodA()methodA()methodB()methodB()methodC()methodC()调调 用用JavaJava程序在执行
6、的过程中,形成了一个先进后出的调用堆栈,程序在执行的过程中,形成了一个先进后出的调用堆栈,各方法之间依照调用先后的不同,由先至后的进入调用堆栈,各方法之间依照调用先后的不同,由先至后的进入调用堆栈,堆栈的最上层即是当前被调用执行的方法。该方法执行完毕堆栈的最上层即是当前被调用执行的方法。该方法执行完毕后,会将处理器控制权交还给调用他的方法,依此类推。后,会将处理器控制权交还给调用他的方法,依此类推。第10页,共70页。方法调用堆栈中异常对象的传递 当某一方法中的一个语句抛出一个异常时,如果该方法中没有当某一方法中的一个语句抛出一个异常时,如果该方法中没有处理该异常的语句,那么该方法就会处理该异
7、常的语句,那么该方法就会中止执行中止执行,并将这个异常传,并将这个异常传递给堆栈中的下一层方法,直到某一方法中含有处理该异常的语句为递给堆栈中的下一层方法,直到某一方法中含有处理该异常的语句为止。如果该异常被传递至主方法,而主方法中仍然没有处理该异常的止。如果该异常被传递至主方法,而主方法中仍然没有处理该异常的语句,则异常将会被抛至语句,则异常将会被抛至JVM,程序中断。,程序中断。main()main()methodA()methodA()methodB()B()methodC()C()调调 用用传传 递递第11页,共70页。例 程public class ExampleOfExceptio
8、n String lines=The first line,The second line,The last line;public static void main(String args)ExampleOfException eoe=new ExampleOfException();eoe.methodA();System.out.println(Program finished.);void methodA()methodB();void methodB()methodC();void methodC()for(int i=0;i4;i+)System.out.println(lines
9、i);The first lineThe second lineThe last lineException in thread main java.lang.ArrayIndexOutOfBoundsException:3 at ExampleOfException.methodC(ExampleOfException.java:16)at ExampleOfException.methodB(ExampleOfException.java:12)at ExampleOfException.methodA(ExampleOfException.java:9)at ExampleOfExcep
10、tion.main(ExampleOfException.java:6)第12页,共70页。Java中的异常类在在JavaJava语言中,任何的异常对象都是语言中,任何的异常对象都是ThrowableThrowable类的直接类的直接子类或间接子类的实例。子类或间接子类的实例。JavaJava的类库已经提供了一些常见的类库已经提供了一些常见的异常类,如果这些异常类不能够满足要求,用户也可以的异常类,如果这些异常类不能够满足要求,用户也可以创建自己的异常类。创建自己的异常类。第13页,共70页。AWTExceptionThrowableErrorExceptionRuntimeException
11、IOExceptionLinkageErrorVirtualMachineErrorAWTErrorArithmeticExceptionIndexOutOfBounds.InterruptedExceptionFileNotFoundExceptionEOFException.第14页,共70页。异常(Throwable)分类Error动态链接失败,虚拟机错误等,通常Java程序不应该捕获这类异常,也不会抛出这种异常。Exception运行时异常继承于RuntimeException。Java编译器允许程序不对它们做出处理。非运行时异常除了运行时异常之外的其他由Exception继承来的异常
12、类。Java编译器要求程序必须捕获或者声明抛出这种异常。第15页,共70页。Error类 ErrorError类表示类表示JavaJava运行时产生的系统内部错运行时产生的系统内部错误或资源耗尽等严重错误。误或资源耗尽等严重错误。这种错误通常是程序无法控制和解决的,如这种错误通常是程序无法控制和解决的,如果发生这种错误,通常的做法是通知用户并果发生这种错误,通常的做法是通知用户并中止程序的执行。中止程序的执行。第16页,共70页。典型的错误类NoClassDefFoundErrorOutOfMemoryErrorVirtualMachineError。第17页,共70页。表5.1 Java常见
13、错误列表类 名功 能 描 述ClassCircularityError初始化某类检测到类的循环调用错误ClassFormatError非法类格式错误IllegalAccessError非法访问错误IncompatibleClassChangError非兼容类更新错误InternalError系统内部错误LinkageError链接错误NoClassDefFoundError运行系统找不到被引用类的定义第18页,共70页。NoSuchFieldError找不到指定域错误NoSuchMethodError所调用的方法不存在OutofMemoryError内存不足错误UnknownError系统无法
14、确认的错误UnsatisfiedLinkError定义为本地的方法运行时与另外的例程相连接错误VerifyError代码校验错误VirtualMachineError虚拟机出错,可能JVM错或资源不足InstantiationError企图实例化一个接口或抽象类的错误第19页,共70页。Exception类 ExceptionException的子类表示了不同类型的异常,例的子类表示了不同类型的异常,例如如RuntimeExceptionRuntimeException表示运行时异常,而表示运行时异常,而IOExceptionIOException表示表示I/OI/O问题引起的异常。问题引起的
15、异常。这些子类也可以被继承以对不同类型的异常这些子类也可以被继承以对不同类型的异常进行细分,如进行细分,如RuntimeExceptionRuntimeException还可细分为还可细分为NullPointerExceptionNullPointerException、ArithmeticExceptionArithmeticException等;等;IOExceptionIOException还可还可细分为细分为FileNotFoundExceptionFileNotFoundException、EOFExceptionEOFException等。等。第20页,共70页。典型的异常类Ari
16、thmeticExceptionArrayIndexOutOfBandsExceptionIOExceptionFileNotFoundExceptionNullPointerExceptionNumberFormatException第21页,共70页。表5.2 Java常见的一般异常列表 类 名功 能 描 述IllegalAccessException非法访问异常ClassNotFoundException指定类或接口不存在异常CloneNotSupportException对象使用clone方法而不实现cloneable接口IOException输入/输出异常InterruptedIOE
展开阅读全文