上图是基本的java异常体系结构。
主要分为2大类:Error和Exception
1.Error:描述了Java运行系统中的内部错误以及资源耗尽的情形。应用程序不应该抛出这种类型的对象,一般是由虚拟机抛出。(error及其子类都是unchecked异常)
2.Exception:分为2大类:普通异常和运行时异常(RuntimeException及其子类)
普通异常:java编译器知道代码中有此类异常,并且要求方法必须声明抛出或者try/catch来捕捉的异常。比如SQLException(这类异常都checked异常)
运行时异常:java编译器知道代码中有此类异常,但是不要求方法必须声明抛出或者try/catch来捕捉的的异常。比如NullPointerException(这类异常都unchecked异常)