Error类和Exception类的父类都是throwable类,区别如下:
Error类:一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。
对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。
Exception类:表示程序可以处理的异常,可以捕获且可能恢复。
遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。
Exception类又分为运行时异常(Runtime Exception)和受检查的异常(Checked Exception )
运行时异常比如有ArithmaticException,IllegalArgumentException,编译能通过,但是一运行就终止了,程序不会处理运行时异常,出现这类异常,程序会终止。而受检查的异常,要么用try...catch捕获,要么用throws字句声明抛出,交给它的父类处理,否则编译不会通过。
那常见的异常有:
ArrayIndexOutOfBoundsException 数组下标越界异常
ArithmaticException 算数异常 如除数为零
NullPointerException 空指针异常
IllegalArgumentException 不合法参数异常