Error类和Exception类的父类都是throwable类,他们的区别是:
Error
Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢出等。
对于这类错误导致的应用程序中断,仅靠程序本身无法恢复和预防,遇见这样的错误,将以让程序终止。
StackOverFlowError 栈溢出错误
OutOfMemoryError 堆溢出错误
Exception
Exception类又分为运行时异常(RuntimeException)和受检查异常(CheckedException),
运行时异常
运行时异常编译时能通过,但是一运行就终止了,程序不会处理运行时异常,出现这种异常,程序会终止。
运行时异常(RuntimeException)
NullPointerException - 空指针引用异常
IndexOutOfBoundsException - 下标越界异常
ConcurrentModificationException - 并发修改操作异常(fail-fast)
IllegalArgumentException -非法参数
受检查异常
受检查的异常,要么用try。。catch捕获,要么用throws字句声明抛出,交给它的父类处理,否则编译不会通过。
ClassNotFoundException 指定的类不存在
IllegalAccessException 非法访问异常