一、图示
二、说明
- Java类库的每个包中都定义了异常类,所有这些类都是Throwable类的子类;
- Throwable类属于java.lang包,每个java程序运行时系统会自动引入此包;
- Throwable类有两个子类,Error类是JVM的错误,IOException类是输入输出类,RuntimeException类是运行时类;
三、error与Exception
1、error
包括一些严重的程序不能处理的系统错误类,如内存溢出、虚拟机错误、栈溢出等。
这类错误一般与硬件有关,与程序本身无关,通常由系统进行处理,程序本身无法捕获和处理。
常见的error有:
NotClassDeFountError(类未定义错误),
OutofMemoryError(内存溢出错误),
StackOverFlowError(栈溢出错误)。
2、Exception:异常分为运行时异常和检查型异常。
检查型异常:
java编译器对检查性异常会要求进行catch,必须进行捕获,否则编译不成功。
java认为检查性异常都可以被处理,所以必须显示的处理checked异常。
常见的检查性异常有IOException,SqlException。
运行时异常:
程序员不需要去手动的catch。当程序中出现运行时异常时,java虚拟机会进行处理。
常见的运行时异常有:空指针异常,算术异常,数组越界异常等。
error是系统错误或者资源错误,是不可控制的。
exception是程序错误引起,检查型异常在程序中必须被程序员try,catch进行显示处理,而运行时异常不需要,它会有虚拟机进行处理。
四、常见的异常种类
1、运行时异常
2、检查型异常