java异常类层次结构图-层次聚类算法 java
1.异常的分类
Java标准库内建了一些通用的异常,这些类以Throwable为顶层父类。Throwable又派生出Error类和Exception类。
Java异常层次结构图如下图所示:
为了方便对于这些可传递对象的管理,Java API中专门设计了java.lang.Throwable类,只有该类子类的对象才可以在系统的异常传递体系中进行。该类的两个子类分别是:
1)Error类
该类代表错误,指程序无法恢复的异常情况。对于所有错误类型以及其子类java异常类层次结构图,都不要求程序进行处理。常见的Error类例如内存溢出StackOverflowError等。
2)Exception类
该类代表异常,指程序有可能恢复的异常情况。该类就是整个Java语言异常类体系中的父类。使用该类,可以代表所有异常的情况。在Java API中,声明了几百个Exception的子类分别来代表各种各样的常见异常情况,这些类根据需要代表的情况位于不同的包中,这些类的类名均以 Exception作为类名的后缀。如果遇到的异常情况,Java API中没有对应的异常类进行代表,也可以声明新的异常类来代表特定的情况。在这些异常类中,根据是否是程序自身导致的异常,将所有的异常类分为两种:
a) RuntimeException及其所有子类
该类异常属于程序运行时异常,也就是由于程序自身的问题导致产生的异常,例如数组下标越界异常ArrayIndexOutOfBoundsException等。该类异常在语法上不强制程序员必须处理,即使不处理这样的异常也不会出现语法错误。
b) 其它Exception子类
该类异常属于程序外部的问题引起的异常,也就是由于程序运行时某些外部问题导致产生的异常,例如文件不存在异常FileNotFoundException等。该类异常在语法上强制程序员必须进行处理,如果不进行处理则会出现语法错误。
2、常见的error类
异常类名
用途
LinkageError
动态链接失败
VirtualMachineError
虚拟机错误
AWTError
AWT错误
3、常见运行时异常类
异常类名
用途
ArithmeticException
数学运算异常java异常类层次结构图,比如除数为零的异常
IndexOutOfBoundsException
下标越界异常,比如集合、数组等
ArrayIndexOutOfBoundsException
访问数组元素的下标越界异常
StringIndexOutOfBoundsException
字符串下标越界异常
ClassCaseException
类强制转换异常
NullpointerException
当程序试图访问一个空数组中的元素,或访问一个空对象中的方法或变量时产生的异常。
4、常用的非运行时异常
异常类名
用途
ClassNotFoundException
指定类或接口不存在的异常
IllegalAccessException
非法访问异常
Ioexception
输入输出异常
FileNotFoundException
找不到指定文件的异常
ProtocolException
网络协议异常
SocketException
Socket操作异常
MalformedURLException
统一资源定位符(URL)的格式不正确的异常
借鉴博文: