排序:
Try-catch-finally:try正常执行,如果有异常执行catch后执行finally,如果没有直接执行finally
执行顺序:try-catch:try中的语句正常执行,如果遇到异常就会执行catch中的语句
无论异常发布发生finally总会执行,除非终止程序,退出虚拟机
Java处理异常是通过五个关键字来实现的:try、catch、finally、throw、throws
异常分检查异常、运行时异常
排列catch语句的顺序:先子类后父类
发生异常时顺序逐个匹配
多路异常捕获,子类异常一定要放在顶级异常之前,只能匹配到一个分支,只要有任何一个异常与之匹配,后续的异常都不再进行匹配。
1,只有catch中有return,虽然finally有++操作,但他返回的结果catch中保存的值,而不是finally操作的结果
2,都有的话以finally为准
3,return在finally括号后面,就以catch中为准
finally处理异常
throw抛出一个异常的关键字
throws声明这个方法可能抛出异常的关键字
public void test() throws Exception{
}
异常类型 | 说明 |
Exception | 异常层次结构的父类 |
ArithmeticException | 算术错误情形,如以零作除数 |
ArrayIndexOutOfBoundsException | 数组下标越界 |
NullPoninterException | 尝试访问null对象成员 |
ClassNotFoundException | 不能加载所需的类 |
InputMismatchException | 欲得到的数据类型与实际输入的类型不匹配 |
IllegalArgumentException | 方法接收到非法参数 |
ClassCasetException | 对象强制类型转换出错 |
NumberFormatException | 数字格式转换异常,如把”abc”转换为数字 |