Java中常见RuntimeException与其他异常表及Exception逻辑关系详解
前言
总结一下Java
开发中常见的几种RuntimeException
异常和其他异常表,方便以后对应排查。
常见RuntimeException
错误类型 |
类型解释 |
NullPointerException |
空指针引用异常 |
ClassCastException |
类型强制转换异常 |
IllegalArgumentException |
传递非法参数异常 |
ArithmeticException |
算术运算异常 |
ArrayStoreException |
向数组中存放与声明类型不兼容对象异常 |
IndexOutOfBoundsException |
下标越界异常 |
NegativeArraySizeException |
创建一个大小为负数的数组错误异常 |
NumberFormatException |
数字格式异常 |
SecurityException |
安全异常 |
UnsupportedOperationException |
不支持的操作异常 |
其他错误类型
Error
类
错误类型 |
类型解释 |
java.lang.Error |
错误。是所有错误的基类,用于标识严重的程序运行问题。这些问题通常描述一些不应被应用程序捕获的反常情况 |
java.lang.AbstractMethodError |
抽象方法错误。当应用试图调用抽象方法时抛出 |
java.lang.AssertionError |
断言错。用来指示一个断言失败的情况 |
java.lang.ClassCircularityError |
类循环依赖错误。在初始化一个类时,若检测到类之间循环依赖则抛出该异常 |
java.lang.ClassFormatError |
类格式错误。当Java虚拟机试图从一个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出 |
java.lang.ExceptionInInitializerError |
初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的static语句段 |
java.lang.IllegalAccessError |
违法访问错误。当一个应用试图访问、修改某个类的域(Field)或者调用其方法,但是又违反域或方法的可见性声明,则抛出该异常 |
java.lang.IncompatibleClassChangeError |
不兼容的类变化错误。当正在执行的方法所依赖的类定义发生了不兼容的改变时,抛出该异常。一般在修改了应用中的某些类的声明定义而没有对整个应用重新编译而直接运行的情况下,容易引发该错误 |
java.lang.InstantiationError |
实例化错误。当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常 |
java.lang.InternalError |
内部错误。用于指示Java虚拟机发生了内部错误 |
java.lang.LinkageError |
链接错误。该错误及其所有子类指示某个类依赖于另外一些类,在该类编译之后,被依赖的类改变了其类定义而没有重新编译所有的类,进而引发错误的情况 |
java.lang.NoClassDefFoundError |
未找到类定义错误。当Java虚拟机或者类装载器试图实例化某个类,而找不到该类的定义时抛出该错误 |
java.lang.NoSuchFieldError |
域不存在错误。当应用试图访问或者修改某类的某个域,而该类的定义中没有该域的定义时抛出该错误 |
java.lang.NoSuchMethodError |
方法不存在错误。当应用试图调用某类的某个方法,而该类的定义中没有该方法的定义时抛出该错误 |
java.lang.OutOfMemoryError |
内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误 |
java.la |