在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题。某些问题不是靠代码能够避免的,比如客户输入数据的格式、读取文件是否存在、网络是否始终保持通畅等。在Java 语言中,将程序运行期间发生的不期而至的各种意外状况(除开发过程中的语法错误和逻辑错误)称为异常,如文件找不到、网络连接失败、非法参数等。
Java 通过API中的Throwable类的众多子类描述各种不同的异常,所以Java 异常是Throwable 子类的实例化对象。Throwable 有两个重要的子类:Exception(异常)和Error(错误)。二者都是Java 异常处理的重要子类,各自又都包含大量子类。Java异常类的层次结构
1.异常:异常不是语法错误,异常是程序出现了不正常的情况。在程序执行过程中,出现了非正常情况,最终导致程序最终。(异常的本质其实是Java中的一些人为定义的类。)
2.异常体系。
Throwable是异常体系的顶层父类。所有异常都是它的子类或间接子类,只有Throwable的异常体系,才可以使用异常的处理机制。Throwable下面有两个子类:(1)Error是错误的顶层父类,用于描述那些无法捕获和处理的错误情况,是非常严重的错误。(2)Exception是异常的顶层父类。用于描述那些可以捕获和处理的列外情况,是不太严重的错误。
而Exception的下面有两大类,一个是RuntimeException及其子类(称为运行时异常)。一个是除此RuntimeException及其子类之外的所有的异常类(称为编译时异常)。