异常继承体系为:异常的根类是 java.lang.Throwable,其下有两个子类:java.lang.Error 与 java.util.Exception 。
- Error:表示不可修复的恶性的错误,只能通过修改代码规避错误的产生,通常是系统级别的,所以很严重。
- Exception:表示可修复的良性(相对于错误)的异常,异常产生后程序员可以并且应该通过代码的方式纠正,使程序继续运行,是必须要处理的。
而Exception又分为编译时期异常:checked异常,与运行时期异常:runtime。运行时期异常:runtime异常。在运行时期,检查异常.在编译时期,运行异常不会编译器检测(不报错)。
throw与throws的区别?
- throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。
- throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。当在主函数中调用该方法时,如果发生异常,就会将异常对象抛给方法调用处。
异常的处理方式
- 异常的处理方式有两种,分别是使用throws和try...catch...finally
- throws用在方法的声明上后接异常类名,是把异常抛给调用者进行处理
- try...catch...finally是捕获异常,自己处理,处理完毕后面的程序可以继续运行
- try代码块中是可能出现异常的代码
- catch代码块,是遇到异常,对异常进行处理的代码
- finally代码块是无论是否发生异常,都必须执行的代码,用于释放资源
常见异常
- NullPointerException:空指针异常。
- ArrayIndexOutOfBoundsException:数组索引越界异常。
- ArithmeticException:算术运算异常。
- NumberFormatException:数字格式异常。