一、异常分类
导致程序的正常流程被中断的事件,叫做异常
异常分类: 通常分为可查异常,运行时异常和错误3种以及自定义程序的错误
可查异常即必须进行处理的异常
要么try catch住,要么往外抛
运行异常即不是必须进行try catch的异常(大多都太过于普遍,如果都需要进行捕捉,代码的可读性就会变得很糟糕)
常见运行时异常:
除数不能为0异常:ArithmeticException
下标越界异常:ArrayIndexOutOfBoundsException
空指针异常:NullPointerException
错误指的是系统级别的异常,通常是内存用光了
二、异常处理
常规处理: try {
执行语句
}catch(异常类型1 对象) {
输出发现异常1时语句
}catch(异常类型2 对象) {
输出发现异常2时语句
}final{
执行最终语句(无论是否发现、无论try中是否返回,都指行final
}
抛出处理:子方法发现异常,如果不进行处理就得将异常抛出,让调用子方法的方法进行处理 方法接到子方法抛出的异常后。 处理办法也是两种,要么是try catch处理掉,要么也是抛出去。
public class TestException {
public static void main(String[] args) {
method1();
}
private static void method1() {
try {
method2();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void method2() throws FileNotFoundException {
File f = new File("d:/LOL.exe");
System.out.println("试图打开 d:/LOL.exe");
new FileInputStream(f);
System.out.println("成功打开");
}
}