Java异常的深层次理解

异常是指java程序运行的时候发生的非正常情况或错误;

Java 使用面向对象的思想去处理异常,它把程序中发生的每个异常也都封装到对象中,该对象包含有异常的信息。

Java对异常进行了分类,所有异常的根类为Throwable,下面分为两个子类:Error和Exception;

Error表示程序本身无法克服和恢复的一种严重问题,程序只有死的份;例如:内存溢出和线程死锁等系统问题。

Exception表示程序还能够克服和恢复的问题,其中又分为系统异常和普通异常,系统异常是软件本身缺陷所导致的问题,也就是软件开发人员考虑不周所导致的问题,软件使用者无法克服和恢复问题,但在这种问题下还可以让系统继续运行或者让软件死掉,例如,数组越界,空指针异常,类转换异常;普通异常是运行环境的变化或异常导致的问题,是用户能够克服的问题,例如,网络断线,硬盘空间不够,发生这样的异常程序不应该死掉;

Java为系统异常和普通异常分别提供了不同的解决方案,编译器强制普通异常必须try..catch处理或者throws声明抛出异常处理,所以普通异常也称为checked异常,编译时异常;而系统异常可以处理也可以不处理,所以,编译器不强制用try…catch处理或用throws声明,所以系统异常也称为unchecked异常。

提示:就按照三个级别去思考:虚拟机必须宕机的错误,程序可以死掉也可以不死掉的错误,程序不应该死掉的错误;

原文地址:https://www.cnblogs.com/yys369/p/3002407.html