Error: 致命异常。标识系统发生了不可控的错误。程序无法处理,只能人工介入。例如, 虚拟机产生的错误StackOverflowError、OutOfMemoryError。
Exception: 非致命异常。程序可处理。分为受编译器检测的checked异常(受检异常)和不受编译器检测的unchecked异常(非受检异常)。
区别:Error:程序无法处理的系统错误,编译器不做检查;(程序无法处理的错误)属于JVM需要负担的责任。
Exception:程序可以处理的异常,捕获后可能恢复;(后者是可以处理的异常)RuntimeException(非受检异常)是程序应该负担的责任;Checked Exception (受检异常)可检查异常时Java编译器应该负担的责任。



