两者都继承Throwable类,Error代表严重系统错误,通常是不可预期的,外部环境或者资源限制问题,如虚拟机异常、内存溢出等。这些错误通常不由程序直接控制,一旦发生程序往往无法恢复。Exception分为受检异常和运行时异常,代表程序运行时可预见的异常情况,比如找不到文件、空指针异常等。通过适当的处理手段,程序往往是可恢复的。
处理方案:Error通常是不可恢复的,无法通过代码逻辑来尝试解决,一般需要记录错误信息,通知用户。并让程序终止。Exception尤其是受检异常,要求开发者在编译期间就采取声明、捕获异常或者抛出异常等手段对异常进行处理。对于运行时异常,虽然编译器不要求强制处理,单良好的编程习惯要求我们发现、处理和记录这些异常,以此增加程序的健壮性