关于异常,本质上是某种意义程度上的程序错误,包括程序逻辑错误和系统错误。
简单看下异常类的层次结构:
简单的异常分类:
RuntimeException:
CheckedException:
对于CheckedException就不胜枚举了,我们在编写程序过程中try...catch...捕捉的异常都是CheckedException。io包中的IOException及其子类,这些都是CheckedException。
Throw和Throws
Throws出现在方法的声明中,表示该方法可能会抛出的异常,允许throws后面跟着多个异常类型;Throw只能在方法体中声明。
Throw:一般会用于程序出现某种逻辑时程序员主动抛出某种特定类型的异常。当方法在执行过程中遇到异常情况时,将异常信息封装为异常对象,然后throw出去。
Throws:表示出现异常的一种可能性,并不一定会发生这些异常;而执行throw则一定抛出了某种异常对象。