异常
异常的概念
异常(Exception)都是运行时的。编译时产生的不是异常,而是错误(Error)。
检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。
Exception 类的层次
所有的异常类是从 java.lang.Exception 类继承的子类。
Exception 类是 Throwable 类的子类Throwable还有一个子类Error 。
Java 程序通常不捕获错误。错误一般发生在严重故障时,它们在Java程序处理的范畴之外。
Error 用来指示运行时
环境发生的错误。
Java 内置异常类
ArithmeticException 运算条件错误异常
ArrayIndexOutOfBoundsException 数组下标越界异常
IllegalArgumentException 参数不合法或不正确异常
NumberFormatException 字符串非法转换异常
IQException I/O异常
SQLException SQL数据库异常
ClassNotFoundException 不能加载所需的类
异常方法
printStackTrace //错误输出方法
异常的处理
throws/throw 关键字:
import java.io.*; public class className { public void deposit(double amount) throws RemoteException { // Method implementation throw new RemoteException(); } //Remainder of class definition }
finally关键字
try{ // 程序代码 }catch(异常类型1 异常的变量名1){ // 程序代码 }catch(异常类型2 异常的变量名2){ // 程序代码 }finally{ // 程序代码 }
声明自定义异常
class MyException extends Exception{ }