一、 概念
程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。
二、 受查异常和非受查异常
非检查异常(unckecked exception):Error 和 RuntimeException 以及他们的子类。
检查异常(checked exception):除了Error 和 RuntimeException的其它异常。
(1)非受查异常在javac编译时,不会提示和发现这样的异常,不要求在程序处理这些异常。而受查异常中,javac强制要求程序员为这样的异常做预备处理工作,在方法中要么用try-catch语句捕获它并处理,要么用throws子句声明抛出它,否则编译不会通过。
三、自定义异常
自定义异常类,则扩展Exception类即可,因此这样的自定义异常都属于检查异常
四、异常的注意事项
(1)当子类重写父类的带有 throws声明的函数时,其throws声明的异常必须在父类异常的可控范围内。用于处理父类的throws方法的异常处理器,必须也适用于子类的这个带throws方法。
五、throw和throws关键字
throw用于方法中抛出某个特定的异常。throw将产生的异常抛出,是抛出异常的一个动作,如throw new NumberFormatException();
throws用于在方法中声明时,表示异常可能被抛出(一般是受查异常)。throws声明将要抛出何种类型的异常(声明)。