Error和Exception的异同点:
(1)Error类和Exception类都继承超类Java.lang.Throwable
(2)Error:一般指与虚拟机相关的问题,如系统崩溃,内存溢出等。对于这类错误,仅靠程序本身无法恢复和预防,遇到这样的错误,建议让程序终止。
Exception:一般是(开发人员)人为导致的错误,可以是可控制(checked)的异常,这类异常鼓励用户程序去catch它,也可以是不可控制(unchecked)的异常,这类异常建议让程 序终止。
(3)Error和RuntimeException及其子类都是未检查的异常(unchecked exceptions),而其他所有的Exception类都是需检查的异常(checked)。
checked exceptions: 通常是从一个可以恢复的程序中抛出来的,并且最好能够从这种异常中使用程序恢复。比如FileNotFoundException, ParseException等。
unchecked exceptions: 通常是如果一切正常的话本不该发生的异常,但是的确发生了。比如ArrayIndexOutOfBoundException, ClassCastException等。