什么是异常
- Java中的错误大致可分为两类:
- 一类编译时错误,一般指语法错误。
- 二是运行时错误。
- 异常是Java提供的专门用于 处理运行时错误 的一种机制。
- 具体步骤是:当程序出现错误时,会创建一个异常类对象,该对象封装了异常的信息并提交给系统,有系统转交给能处理该异常的代码进行处理。
- 异常可以分为两类,包括 Error和Exception。
---- Error指系统错误,由JVM生成,我们编写的程序无法处理。
---- Exception 指程序运行期间出现的错误,我们编写的程序可以对其进行处理。
异常的使用
异常的使用需要用到两个关键字 try 和 catch,并且这两个关键字需要结合起来使用,用 try 来监听可能会抛出异常的代码,一旦捕获到异常,生成异常对象并交给 catch 来处理,基本语法如下:
try{
//可能抛出的异常
} catch(异常对象){
//处理异常
}
除了使用try、catch关键字,还需要用到finally关键字。无论程序是否抛出异常,finally代码块中的代码都会执行。
public class Test9 {
public static void main(String[] args) {
System.out.println(test());
}
public static int test() {
try {
System.out.println("try...");
return 10;
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally {
System.out.println("finally...");
return 20;
}
}
}
异常类
- 最顶端的类是Throwable,是所有异常类的根节点。
- Throwable有两个直接子类,Error 和 Exception。
- Error 表示系统错误,程序无法解决,Exception 指程序运行时出现的错误,程序可以处理,所有的异常类都存放在java.lang包中。
Error常见子类:
- VirtualMachineError
- AWTError
- IOError
Exception常见子类:
- IOException —— 存放在 java.io 包中。
- IOException 的常用子类包括:FileLockInterruptionException、FileNotFoundException、FilerException。
- 这些异常通常都是在处理 IO 流进行文件传输时发生的错误。
- RuntimeException —— 存放在java.lang 包中。
- RuntimeException 常用子类如下:
- ArithmeticException:表示数学运算异常。
- ClassNotFouneException:表示类未定义异常。
- illegalArgumentException:表示参数格式错误异常。
- ArrayIndexOutOfBoundsException:表示数组下标越界异常。
- NullPointerException:表示空指针异常。
- NoSuchMethodException:表示方法未定义异常。
- NumberFormatException:表示将其他数据类型转为数值类型时的不匹配异常。