Java异常处理5.ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int b; while((b=fis.read())!=-1) {
System.out.print((char)b); }
fis.close(); } catch(FileNotFouபைடு நூலகம்dException e){
System.out.println(e); } catch(IOException e){
6.2.3 Error类及其子类
Error类定义了正常情况下不希望捕捉的错 误。在捕捉Error子类时要多加小心,因为 它们通常在出现灾难性错误时被创建。表63列出一些常见的Error异常类。
6.3 java异常产生与捕捉
6.3.1产生异常 通过下面两个引例来认识异常的产生。 【引例1】 import java.io.*; class Exception1 { public static void main(String args[ ]) {
System.out.println(e); } } }
第一种情况,如果要打开的文件“text”在当前目录中不存 在,程序运行时会抛出一个FileNotFoundException异常对 象,由于第一个catch语句与该异常类型匹配,所以程序 将执行第一个catch语句,于是就会显示下面的信息:
1. try try用来监视它所在的程序块是否发生异常,如果 发生异常就抛出它。对于系统产生的异常或程序 块中未用try监视所产生的异常,将一律被Java运 行系统自动抛出它。
2. catch catch用来捕捉try程序块所抛出的异常,并根据异 常类型采取相应的方法进行处理。每个try程序块 后面紧接着一个或多个catch语句,用于捕捉try程 序块中所抛出的一个或多个异常。catch语句只需 要一个形式参数,参数类型给出它能够捕捉的异 常类型,这个类必须是Throwable的子类,运行时 系统通过参数值把被抛出的异常对象传递给catch 块,在catch块中是对异常对象进行处理的代码。
6.3.2 捕捉异常
一个方法中如果对某种类型的异常对象提供了相应的处理代 码,则这个方法就可以捕捉对应的异常。捕捉异常是通过 try-catch-finally语句实现的。其语法为:
try{ 正常程序段,可能抛出异常; } catch (异常类1 异常变量) { 捕捉异常类1有关的处理程序段; } catch (异常类2 异常变量) { 捕捉异常类2有关的处理程序段; } …… finally{ 退出异常处理程序段; }
第6讲 Java异常处理
本讲重点
通过本讲的学习,主要了解异常的概念、 作用和异常的产生,掌握怎样捕捉异常, 怎样创建自己的异常类,以及怎样利用Java 开发环境提供的异常类来处理程序中的异 常。通过技能训练,掌握Java语言中异常处 理的基本技术。
6.1概 述
异常(exception)也是异常事件(exceptional event)的简称,它是在程序运行中出现的 违背指定正常流向的事件。
6.2 异常的类型
6.2.1异常类的层次结构
java语言用继承的方 式来组织各种异常
如果程序中可能产生非运行异常,就必须 明确地加以捕捉并处理,否则就无法通过 编译检查。
与非运行异常不同的是,错误(Error)与 运行异常(RuntimeException)不需要程序 明确地捕捉并处理。
6.2.2 Exception类及其子类
Java中的每个异常都是一个对象,它是 java.lang包中Throwable类或其子类的实例
对象。Throwable类有两个子类:
Exception类
Error类
Exception类是可以被捕捉并且可能恢复的 异常类,也可以继承Exception类生成自己 的异常类。
Error类一般被认为是不可恢复和不可捕捉 的异常类。
异常对象包括关于异常的信息、类型和错 误发生时程序的状态以及对该错误的详细 描述。
在Java中,创建一个异常对象并把它送到运 行系统叫做抛出异常。
在抛出异常后,运行系统将寻找合适的方 法来处理异常。如果产生的异常类与所处 理的异常类一致,则认为找到了合适的异 常处理方法。如果运行系统找遍了所有方 法而没有找到合理的异常处理方法,则运 行系统将终止Java程序的运行。异常处理也 叫做捕捉异常。
【例6.1】 捕捉引例1中的异常。 import java.io.*; class Exception3 {
public static void main(String args[ ]) { try{ FileInputStream fis=new FileInputStream("text");
public static void main(String args[ ]) {
int a=0,b=0; a=36/b; System.out.println("a="+a); } }
上面的两个引例都有或可能有异常产生。 对于一些异常,在程序中必须对它进行处 理,否则编译程序时会指出错误,如引例1; 但对另一些异常,在程序中可以不做处理, 而直接由运行系统来处理,如引例2。
1. 运行异常 运行异常表现在Java运行系统执行过程中的
异常,它是指Java程序在运行时发现的由 Java解释抛出的各种异常,包括算术异常、 下标异常等等。表6-1列出几种常见的异常。
2.非运行时异常
非运行时异常是由编译器在编译时检测是 否会发生在方法的执行过程中的异常。非 运行异常是Non-RuntimeException及其子 类的实例,可以通过throws语句抛出。Java 在其标准包Java.lang、java.util、java.io、 java.net中定义的异常类都是非运行异常类。 表6-2列出了常见的非运行异常。
FileInputStream fis=new FileInputStream("text"); int b; while((b=fis.read())!=-1) {
System.out.print((char)b); }
fis.close(); } }
【引例2】 class Exception2 {
相关文档
最新文档