第七章例外处理(新)_第1页
第七章例外处理(新)_第2页
第七章例外处理(新)_第3页
第七章例外处理(新)_第4页
第七章例外处理(新)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java异常处理异异常常处处理理1、异常的概念、异常的概念2、标准异常类、标准异常类3、异常处理机制、异常处理机制4、自定义异常、自定义异常2程序错误分类l程序中的错误可分为三类:(1)编译错误(2)逻辑错误(3)运行时错误3异常的定义l异常是程序执行期间发生的各种意外或错误。例如: 用户输入出错 所需文件找不到 运行时磁盘空间不够 内存不够 算术运算错 (数的溢出,被零除) 数组下标越界 4异常的分类lJava程序运行过程中,会产生的异常有如下三种类型:(1)JAVA虚拟机由于某些内部错误产生的异常。(2)标准异常类,由java系统预先定义好的。(3)用户程序自定义的异常类。Java异常处理

2、异异常常处处理理1、异常的概念、异常的概念2、标准异常类、标准异常类3、异常处理机制、异常处理机制4、自定义异常、自定义异常6Java中标准异常类的层次结构l Java中所有的异常都是用类表示的,每个异常类都代表了一种运行错误。l Java定义了许多标准异常类,它们都是系统类库中的ExceptionException类类的子类,它们分布在java.lang、java.io、java.util和包中,各个异常类采用继承的方式进行组织。l 异常类的层次结构图如下图所示:7Java中标准异常类的层次结构Throwable类类Error类类ExceptionException类类 RuntimeExc

3、eption类类ArithmeticException类类IndexOutofBoundException类类ArrayIndexOutofBoundsException类类IoException类类FileNotFoundException类类EOFException类类在在Java.lang包包在在Java.io包包8Throwable类l 该类属于Java.lang包,是所有异常类的父类在Throwable类中定义了描述异常发生的位置和所有异常类共同需要的内容9Throwable类的构造方法 以null作为错误信息串内容创建Throwable对象,同时调用该对象的另一方法fillInSt

4、ackTrace记录异常发生的位置。 以message的内容作为错误信息串创建Throwable对象,同时调用该对象的另一方法fillInStackTrace。 public Throwable() public Throwable() public Throwable(String message) public Throwable(String message)10Throwable类的主要成员方法 返回异常描述。 public String getMessage() public String getMessage() public String toString() public St

5、ring toString() 返回异常对象详细信息。11Throwable类的主要成员方法 打印异常发生的路径,即引起异常的方法调 用嵌套序列。 public void printStackTrace() public void printStackTrace() public Trowable fillInStackTrace() public Trowable fillInStackTrace() 将当前异常对象的发生位置 (类、方法和所在文件的行号) 记录到跟踪栈对象中。12Error类 Error类是Throwable类的子类,由系统保留,用户不能使用。lError类描述系统错误:如

6、将字节码装入内存的过程中和对字节码进行检查的过程中遇到的问题、java的内部错误、资源耗尽等情况。l这类异常由java直接处理,用户程序不要理会这类异常。13 Exception类是Throwable类的子类,用户程序中可以直接使用Exception类处理Exception类型的异常。 Exception类不仅继承了Throwable类的方法,同时还定义了以下两个构造方法: Exception类(1 1)public Exception()public Exception()(2 2)public Exception(String s)public Exception(String s)Jav

7、a异常处理异异常常处处理理1、异常的概念、异常的概念2、标准异常类、标准异常类3、异常处理机制、异常处理机制4、自定义异常、自定义异常15异常处理机制lJava对异常的处理涉及两方面的内容:(1)抛出异常(throw)(2)捕捉异常(catch)16抛出异常 JAVA程序抛出异常有两种方式:(1)由系统自动抛出异常 (2)人为异常抛出。有两种方式: 在方法头方法头写出需要抛出的异常(利用throws 语句) 在方法体内方法体内抛出异常(利用throw语句)17throws语句格式 throws语句格式为: 修饰符修饰符 返回值类型返回值类型 方法名(方法名( 形参表形参表 )throws th

8、rows 异常类名异常类名1 1,异常类名,异常类名2 2, 例如: public void troubleSome() throws IOException18throws语句举例class Throws_Exp public static void main(String args) throws ArithmeticException,ArrayIndexOutOfBoundsException int a=4,b=0,c=1,2,3,4,5; System.out.println(a/b); System.out.println(ca+1); System.out.println(“e

9、nd”); 19throw语句格式 如果需要在方法内方法内某个位置抛出异常,可以使用throw语句,通常将throw语句和if语句配合使用。 格式:(1) throw 异常类对象名;(2) throw (new 异常类名();20throw语句举例(1)class Throw_Exp1 public static void main(String args) ArithmeticException e=new ArithmeticException(); int a=4,b=0; System.out.println(“Before ArithmeticException”); if(b=0)

10、 throw e; System.out.println(a/b); 21class Throw_Exp2 public static void main(String args) int a=5,c=1,2,3,4,5; System.out.println(“Before throw ArrayIndexOutOfBoundsException”); if(a4) throw (new ArrayIndexOutOfBoundsException(); System.out.println(“After throw ArrayIndexOutOfBoundsException”); thr

11、ow语句举例(2)22class Throw_Exp3 public static void main(String args) int a=5,b=0,c=1,2,3,4,5; System.out.println(“Before throw”); if(b=0) throw (new ArithmeticException (); System.out.println(a/b); if(a4) throw (new ArrayIndexOutOfBoundsException(); System.out.println(a/b); throw语句举例23捕捉异常 要由程序自己捕捉和处理异常

12、,需要建立try- catch-finally语句块。24try /在此区域内或能发生异常; catch(异常类1 e1) /处理异常1; catch(异常类n en) /处理异常n; finally /不论异常是否发生,都要执行的部分; 被监视的块该catch子句能够捕捉和处理的异常类型try - catch语句块格式25try-catch-finally结构说明(1)将可能发生异常的程序代码放置在try程序块中。如果该块内的代码出现了异常,系统将终止try块代码的执行,自动跳转到所发生的异常类对应的catch块中,执行该块中的代码。如果程序运行正常,后面的各catch块不起任何作用。(2)

13、finally块是个可选项,无论异常是否发生,finally块的代码必定执行。通常把对各种异常共同处理部分放在finally块中,如输出统一信息、释放资源、清理内存、关闭已打开的文件等。(3)一个try块可以对应多个catch块,用于对多个异常类进行捕获。但最多只能选中一个执行。(4)异常对象与catch块中声明的实例的匹配原则: 异常对象是catch块中声明的异常类的实例; 异常对象是catch块中声明的异常类的某一子类的实例;26class Try_Catch_Exp1public static void main(String args) int d=0,a; try System.ou

14、t.println(Before throw Exception); a=5/d; System.out.println(the Exception is throw,The statement ist run); catch(ArithmeticException e) System.out.println(处理算数异常的catch语句块捕获了异常!); System.out.println(捕获的异常为+e); catch(ArrayIndexOutOfBoundsException e) System.out.println(处理数组下标越异常的catch语句块捕获了异常!); Syst

15、em.out.println(捕获的异常为+e); finally System.out.println(这是所有catch块的共有部分!); System.out.println(try-catch-finally块后面的语句); try-catch-finally结构例子(1)27class Try_Catch_Exp2 public static void main(String args) int a=5,b=0,c=1,2,3,4,5; try System.out.println(Before throw); if(a4) throw (new ArrayIndexOutOfBou

16、ndsException(); System.out.println (After throw); catch(ArrayIndexOutOfBoundsException e) System.out.println(处理数组下标越异常的catch语句块捕获了异常!); System.out.println(捕获的异常为+e); finally System.out.println(这是所有catch块的共有部分!); System.out.println(try-catch-finally块后面的语句); try-catch-finally结构例子(2)Java异常处理异异常常处处理理1、异

17、常的概念、异常的概念2、标准异常类、标准异常类3、异常处理机制、异常处理机制4、自定义异常、自定义异常29自定义异常使用自定义异常的步骤:(1)通过继承java.lang.Exception 类声明自定义 异常类。(2)在方法适当的位置生成自定义异常类的实例, 并用throw语句抛出。(3)在方法的声明部分用throws语句声明该方法 可能抛出的异常。30自定义异常类格式用户自定义异常类格式为: 例如: class 自定义异常类名 extends Exception 异常类体; class MyException extends Exception 31自定义异常类说明用户定义的异常同样要用try-catch捕获,但必须由用户自己抛出异常。 例如:throw new MyException()32自定义异常例子class Exception_exp public static void main(String args) try System.out.println(2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论