在Java中,根据错误性质将运行错误分为两大类:错误和异常。 (推荐学习:java课程)
Java中的所有异常都是由Throwable类的子类生成的对象,所有的异常类都是Throwable类的子类或子类的子类。
Throwable类是Object类的直接子类,Error类和Exception类是Throwable类的两个直接子类。
Error的继承关系:
Exception的继承关系:
error:类包括一些严重的程序不能处理的系统错误类,如内存溢出、虚拟机错误、栈溢出等。这类错误一般与硬件有关,与程序本身无关,通常由系统进行处理,程序本身无法捕获和处理。常见的error有:NotClassDeFountError(类未定义错误),OutofMemoryError(内存溢出错误),StackOverFlowError(栈溢出错误)。
Exception:异常分为运行时异常和检查型异常。
1)java编译器对检查性异常会要求我们进行catch,必须得进行捕获,否则编译不过去。java认为检查性异常都可以被处理,所以必须显示的处理checked 异常。常见的检查性异常有IOException,SqlException。
2)运行时异常:程序员不需要去手动的catch。当程序中出现运行时异常时,java虚拟机会进行处理。常见的运行时异常有:空指针异常,算术异常,数组越界异常等。
error是系统错误或者资源错误,是不可控制的。
exception是程序错误引起的,检查型异常在程序中必须被程序员try,catch的进行显示处理,而运行时异常不需要,它会有jvm进行处理。
而所有的异常都是Throwable的子类或者子类的子类。