**Unchecked Exception: ** a. 指的是程序的瑕疵或逻辑错误,并且在运行时无法恢复。 b. 包括Error与RuntimeException及其子类,如:OutOfMemoryError, UndeclaredThrowableException, IllegalArgumentException, IllegalMonitorStateException, NullPointerException, IllegalStateException, IndexOutOfBoundsException等。 c. 语法上不需要声明抛出异常。
**Checked Exception: ** a. 代表程序不能直接控制的无效外界情况(如用户输入,数据库问题,网络异常,文件丢失等) b. 除了Error和RuntimeException及其子类之外,如:ClassNotFoundException, NamingException, ServletException, SQLException, IOException等。 c. 需要try catch处理或throws声明抛出异常。
**注意:**Checked Exception是必须要捕捉或者抛出的,否则编译不通过;Unchecked Exception推荐不捕获