在Java中,异常情况分为Excep tion (异常)和Error (错误)两大类,Java 异常通常是指程序运行过程中出现的非正常情况,如用户输入错误、除数为零、需要处理的文件不存在、数组下标越界等,对于异常情况的出现,可以采用异常处理,以保证程序可以正常的执行。 Java中定义两种类型的异常和错误: 1. JVM(Java虚拟机) 异常:由 JVM 抛出的异常或错误。例如:NullPointerException 类,ArrayIndexOutOfBoundsException 类,ClassCastException 类。 2. 程序级异常:由程序或者API程序抛出的异常。例如 IllegalArgumentException 类,IllegalStateException 类。 捕获异常的方法 使用 try 和 catch 关键字可以捕获异常,try/catch代码块中的代码称为保护代码,可以放在异常可能发生的地方,具体用法如下: try { // 程序代码 }catch(ExceptionName e1) { //Catch 块 } catch 语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try 后面的 catch 块就会被检查。如果发生的异常包含在 catch 块中,异常会被传递到该 catch 块,这和传递一个参数到方法是一样。也可以进行多重捕获,具体用法是在try代码块后面跟随多个catch代码块。 catch 语句往往是和finally配合使用,finally关键字用来创建在try代码块后面执行的代码块,无论是否发生异常,finally代码块中的代码总会被执行,因此,在 finally 代码块中,可以运行清理类型等收尾善后性质的语句。 声明自定义异常 在Java中可以自定义异常,在自定义异常类时需注意以下几点: 1. 所有异常都必须是 Throwable 的子类; 2. 自定义检查性异常类,则需继承 Exception 类; 3. 自定义运行时异常类,则需继承 RuntimeException 类。 自定义的异常类和其他任何类都一样,包含有变量和方法。其作用机制均是抛出异常和捕捉异常,一个方法能捕捉异常,一定是Java代码在某处所抛出的异常,异常总是先被抛出,后被捕捉的。
|