JAVA课件lesson4PPT教学课件

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

public class Inheriting { public static void f( ) throws MyException { System.out.println("Throwing MyException from f()"); throw new MyException(); //抛出自定义例外 } ……… public static void main(String[] args) { try { f(); } //处理自定义例外 catch(MyException e) { e.printStackTrace(); } ……… } //end of main()
顺序: 先具体、后一般)
2020/12/10
例外处理机制
9
例外处理过程
4
当程序执行发生异常或遇到关键字 throw 时就抛出一个例外
将控制转移到相关的 catch 块中处理之
如果产生例外的方法本身没有相应catch 语句块,则应有throws语句声明例外
退出当前方法并转向上一级调用此方法 的方法的 catch 语句块
例外处理机制
4
Java中的错误类型
4
Throwable
Error Exception
ArrayIndexOutOfBoundsException IOException
……...
可抛出类Throwable
错误类Error
例外/异常类Exception
2020/12/10
例外处理机制
5
例外的产生
4
4
例外处理机制
主要内容
4
引入例外机制 Java的例外处理
– 例外的抛出、捕获与处理
自定义例外 使用finally
2020/12/10
例外处理机制
2
对错误的处理
程序执行的错误 处理错误
– 向用户通知错误 – 保存全部工作 – 让用户适当地退出程序
例外处理
– JAVA检测和报告错误的机制
2020/12/10
4
try { //抛出例外
throw new Exception("Here's my Exception");
} catch(Exception e) { //捕获例外 //处理例外
System.out.println("Caught Exception");
System.out.println("e.getMessage(): " +
2020/12/10
例外处理机制
7
例外的捕获和处理
4
警戒区:可能会引起例外的代码段
try{ 警戒区代码
}catch(ExceptType e){ 例外处理代码
//引起例外 //捕获例外 //处理例外
}
例外处理代码(Exception handlers)相当于 一类特殊的方法调用
2020/12/10
若始终没有catch块来处理则由运行系统
处理
2020/12/10
例外处理机制
10
Exception类的几个方法 4
String getMessage():返回详细信息
String toString():返回描述,包括详细信息
void printStackTrace(): 打印出例外发生的 路径,即引起例外的方法调用的序列
} //end of class Inheriting
2020/12/10
例外处理机制
4
3
处理错误的方式
4
函数式编程中,直接检测调用函数返回 值以确定错误内容,存在问题
– 检测错误返回的编码工作量大,逻辑上复杂 – 返回的错误信息有限,无详细的位置性质等
例外处理
– throws,使不能正常结束的方法抛出一个封 装了错误信息的对象-例外
– 使用例外处理程序处理异常错误
2020/12/10
自动抛出例外
– 运行例外
程序运行中可自动由Java解释器引发并处理 的例外;编程时不需捕获或声明。
如:除0、下标越界、指针例外等
– 非运行例外
可在编译期由编译器确定某方法是否会发生 此类例外;必须编程时捕获或声明
如:IOException, InterruptedException
Baidu Nhomakorabea
2020/12/10
e.getMessage());
System.out.println("e.toString(): " + e.toString());
System.out.println("e.printStackTrace():");
e.printStackTrace();
}
} //end of main()
} //end of class
例外处理机制
8
多个例外的处理
4
可用一组并列的catch块处理多例外情况
try { . . . } catch( 例外类1 e1) { . . . } catch( 例外类2 e2) { . . . }
...
匹配规则:
– 抛出对象与catch参数类型相同
– 抛出对象为catch参数类的子类
– 按先后顺序捕获(注意catch块书写时的排列
例外处理机制
6
例外的产生(续)
4
编程抛出例外:
– 在程序的相应部分抛出例外:
– throw new XXXException();
– throw new XXXException(String describe);
例:String readData() throws EOFException {……………….. throw new EOFException(“error”); ………………….}
2020/12/10
例外处理机制
12
自定义例外类
4
必须从Java已有定义的例外类继承,如 Exception、IOException等
可扩展构造函数、变量和方法
例:Inheriting.java
2020/12/10
例外处理机制
13
4 class MyException extends Exception { //自定义例外 public MyException() {} public MyException(String msg) { super(msg); } }
方法均继承自Throwable类
例:ExceptionMethods.java
– 抛出->捕获->处理
– 例外的各方法
2020/12/10
例外处理机制
11
public class ExceptionMethods { public static void main(String[] args) {
相关文档
最新文档