第6章 异常
第6章 异常
异常的概念 其程序中的错误: 编译错误 指程序在执行过程中出现程序本身 没有预料的情况,从而导致程序错 运行错误 误结束 异常的概念: 使用异常机制的目的: 用来在发生运行异常时告诉程 序如何控制自身的运行,以防 止错误的进一步恶化
异常的概念 程序中的错误: 编译错误 运行错误 异常的概念: 指程序在执行过程中出现程序本身 没有预料的情况,从而导致程序错 误结束 使用异常机制的目的: 用来在发生运行异常时告诉程 序如何控制自身的运行,以防 止错误的进一步恶化
一、异常处理机制 Java使用异常对Java程序给出一个统 一和相对简单的抛出和处理错误的机制。 如果一个方法本身能抛出异常,当所调 用的方法出现异常时,调用者可以捕获 异常使之得到处理;也可以回避异常, 这时异常将在调用的堆栈中向下传递, 直到被处理
一、异常处理机制 Java使用异常对Java程序给出一个统 一和相对简单的抛出和处理错误的机制。 如果一个方法本身能抛出异常,当所调 用的方法出现异常时,调用者可以捕获 异常使之得到处理;也可以回避异常, 这时异常将在调用的堆栈中向下传递, 直到被处理
和传统的方法比较异常的优点: 1.把错误代码从常规代码中分离出来 2.把错误传播给调用堆栈 3.按错误类型和错误差别分组 4.系统提供了对于一些无法预测的错误的捕获和 处理 5.克服了传统方法的错误信息有限的问题
和传统的方法比较异常的优点: 1. 把错误代码从常规代码中分离出来 2. 把错误传播给调用堆栈 3. 按错误类型和错误差别分组 4. 系统提供了对于一些无法预测的错误的捕获和 处理 5. 克服了传统方法的错误信息有限的问题
异常的处理过程 程序运行时出现错误 创建异常对象 抛出异常对象 接收并处理
异常的处理过程 创建异常对象 抛出异常对象 接收并处理 程序运行时出现错误
异常类 在Java中,将异常情况分为Exception(异常)和 Error(错误)两大类。 Error类对象由Java虚拟机生 成并抛出;Exception类对象由应用程序处理或抛出。 Object Throwable Exception Error 异常类的继承结构
异常类 在Java中,将异常情况分为Exception(异常)和 Error(错误)两大类。 Error 类对象由 Java 虚拟机生 成并抛出;Exception 类对象由应用程序处理或抛出。 Object Throwable Exception Error 异常类的继承结构
Exception子类的继承关系 Exception ClassNotFoundException 找不到类 ClassNotSupportedException 试图复制一个没有实现接口的对象 IllegalAccessException 试图访问一个类被拒绝 InstantiationException 试图创建一个抽象类或接口的对象 InterruptedException 个线程被另外一个线程中断 NoSuchMethodException 请求方法不存在 RuntimeException 系统异常 ArithmeticException 算术错误,例如除零 ArrayStoreException 数组元素赋值类型不兼容 ClassCastException 非法强制转换类型 IllegalArgumentException 使用非法参数调用一个方法
Exception子类的继承关系 Exception ClassNotFoundException 找不到类 ClassNotSupportedException 试图复制一个没有实现接口的对象 IllegalAccessException 试图访问一个类被拒绝 InstantiationException 试图创建一个抽象类或接口的对象 InterruptedException 一个线程被另外一个线程中断 NoSuchMethodException 请求方法不存在 RuntimeException 系统异常 ArithmeticException 算术错误,例如除零 ArrayStoreException 数组元素赋值类型不兼容 ClassCastException 非法强制转换类型 IllegalArgumentException 使用非法参数调用一个方法
Exception子类(续) IllegalThreadStateException被请求的操作和当前线程状态不匹配 NumberFormatException从一个字符串到一个数字格式的无效转换 llegalMonitorStateException非法监控操作 IndexOutOfBoundsException一些类型的索引超出范围 ArrayIndexOutOfBoundsException 数组索引超出范围 StringIndexOutOfBoundsException字符索引超出范围 NegativeArraySizeException以负值创建数组 NullPointerException使用无效的null引用 SecurityException试图违反安全性
Exception子类(续) IllegalThreadStateException被请求的操作和当前线程状态不匹配 NumberFormatException从一个字符串到一个数字格式的无效转换 IllegalMonitorStateException非法监控操作 IndexOutOfBoundsException一些类型的索引超出范围 ArrayIndexOutOfBoundsException 数组索引超出范围 StringIndexOutOfBoundsException 字符索引超出范围 NegativeArraySizeException 以负值创建数组 NullPointerException 使用无效的null引用 SecurityException 试图违反安全性
Exception类的主要方法 public Exception(); public Exception(String s); public String toString(); public String getMessage();
Exception 类的主要方法 public Exception( ); public Exception(String s); public String toString( ); public String getMessage( );
二、异常处理方法 异常处理的方法有两种: 一种方法是使用try.catch..finally 结构对异常进行捕获和处理; 二种方法是通过throws和throw抛出 异常
二、异常处理方法 异常处理的方法有两种: 一种方法是使用try…catch…finally 结构对异常进行捕获和处理; 二种方法是通过throws和throw抛出 异常