最全Java基础异常整理总结(持续更新)

java.lang

java.lang.ArithmeticException

异常算术条件时抛出。 例如,“除以零”的整数会抛出。

java.lang.ArrayIndexOutOfBoundsException

抛出以表示使用非法索引访问数组。 索引为负数或大于或等于数组的大小。

java.lang.ArrayStoreException

抛出以表示尝试将错误类型的对象存储到对象数组中。 例如,以下代码生成一个ArrayStoreException :

Object x[] = new String[3];

x[0] = new Integer(0);

java.lang.ClassCastException

抛出表示代码尝试将对象转换为不属于实例的子类。 例如,以下代码生成一个ClassCastException :

Object x = new Integer(0);

System.out.println((String)x);

java.lang.ClassNotFoundException

当应用程序尝试通过其名称加载类时抛出:

• Class.forName方法 。

• ClassLoader.findSystemClass方法。

• ClassLoader.loadClass方法。

但是没有找到指定名称的类的定义。

java.lang. CloneNotSupportedException

对象的类未实现Cloneable接口。覆盖clone方法的应用程序也可以抛出此异常以指示对象无法或不应被克隆。

java.lang. EnumConstantNotPresentException

当应用程序尝试通过名称访问枚举常量时抛出,枚举类型不包含指定名称的常量。

java.lang. IllegalAccessException

当应用程序尝试反射创建实例(数组除外),设置或获取字段或调用方法时,当前执行的方法无法访问指定类,字段的定义,方法或构造函数。会抛出IllegalAccessException。

java.lang. IllegalArgumentException

抛出表示方法传入了非法或不正确的参数

java.lang. IllegalMonitorStateException

线程尝试在对象的监视器上wait或notify,却没有拥有指定的监视器。

java.lang. IllegalStateException

表示在非法或不适当的时间调用了一种方法。 换句话说,Java环境或Java应用程序对于请求的操作并不处于适当的状态。

java.lang. IllegalThreadStateException

抛出以指示线程处于所请求操作的不适当状态。

java.lang. IndexOutOfBoundsException

抛出以表示某种索引(例如数组,字符串或向量)的索引超出范围。

应用程序可以将此类子类化以指示类似的异常。

java.lang. InstantiationException

当应用程序尝试使用newInstance方法创建类的实例时抛出,但指定的类对象不能被实例化。 实例化可能由于各种原因而失败,包括但不限于:

• 类对象表示抽象类,接口

• 该类没有空值构造函数

java.lang. InterruptedException

被中止异常。当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。

java.lang. NegativeArraySizeException

一个应用程序尝试创建一个负数大小的数组抛出。

java.lang. NoSuchFieldException

表示该类没有指定的字段。

java.lang. NoSuchMethodException

当无法找到特定方法时抛出。

java.lang. NullPointerException

当应用程序尝试在需要对象的情况下为null时抛出。

java.lang. NumberFormatException

将字符串转换为数字,格式错误。

java.lang. ReflectiveOperationException

核心反射中的反射操作所引起的异常的常见超类。

java.lang. RuntimeException

RuntimeException是在Java虚拟机的正常操作期间可以抛出的那些异常的超类。

RuntimeException及其子类是未经检查的异常 。 unchecked异常不需要在方法或构造函数throws。

java.lang. SecurityException

安全管理器抛出,表示安全违规。

java.lang. StringIndexOutOfBoundsException

索引为负或大于字符串的大小。对于某些方法(如charAt方法)。

java.lang. TypeNotPresentException

使用表示类型名称的字符串访问类型时没有找到类型的定义抛出。此异常不同于ClassNotFoundException在ClassNotFoundException是检查的异常,而此异常是未经检查的。

java.lang. UnsupportedOperationException

抛出以表示不支持的操作。

java.lang. AbstractMethodError

当应用程序尝试调用抽象方法时抛出。

java.lang. AssertionError

抛出以表明断言失败。

java.lang. BootstrapMethodError

未找到其引导方法。

java.lang. ClassCircularityError

当Java虚拟机检测到正在加载的类的超类层次结构中的循环性时抛出。

java.lang. ClassFormatError

当Java虚拟机尝试读取类文件并确定文件格式不正确或不能解释为类文件时抛出。

java.lang. ExceptionInInitializerError

表示在静态初始化程序中发生意外异常。

java.lang. IllegalAccessError

如果应用程序尝试访问或修改某个字段,或调用无法访问的方法,则抛出此异常。

java.lang. IncompatibleClassChangeError

当一些类定义发生不兼容的类更改时抛出。 当前执行方法所依赖的某些类的定义已经改变了。

java.lang. InstantiationError

当应用程序尝试使用Java new构造来实例化抽象类或接口时抛出。

java.lang. InternalError

在Java虚拟机中引发了一些意外的内部错误。

java.lang. LinkageError

一个类对另一个类有依赖,而后期运行时依赖的类发生变化导致异常。

java.lang. NoClassDefFoundError

Java虚拟机在编译时能找到类定义,而在运行时找不到导致的错误。

java.lang. NoSuchFieldError

Java虚拟机在编译时能找到field,而在运行时找不到导致的错误。

java.lang. NoSuchMethodError

Java虚拟机在编译时能找到方法(静态或实例),而在运行时找不到。

java.lang. OutOfMemoryError

当Java虚拟机由于内存不足而无法分配对象时抛出。

java.lang. StackOverflowError

在程序栈空间耗尽时抛出,通常是深度递归导致。

java.lang. UnsupportedClassVersionError

类的版本号不对。通常是由于高版本JDK编译在低版本JVM运行导致。

java.lang. VerifyError

Java虚拟机编译的时候,”校验器"检测到一个类文件虽然格式正确,但包含着一些内部不一致性或安全性问题时,抛出该错误。

java.lang. VirtualMachineError

抛出以表明Java虚拟机已损坏或已耗尽资源。

java.io

java.io.CharConversionException

字符转换异常的基类。

java.io.EOFException

表示在输入过程中意外地到达文件结束或流结束。

这个异常主要由数据输入流用来表示流的结尾。 请注意,许多其他输入操作在流的末尾返回特殊值,而不是抛出异常。

java.io.FileNotFoundException

指示尝试打开指定路径文件失败。

java.io.InterruptedIOException

表示I / O操作已中断。 抛出一个InterruptedIOException表示输入或输出传输已被终止,因为执行它的线程被中断。

java.io.InvalidClassException

当序列化运行时检测到类中的以下问题之一时抛出。

• 类的串行版本与从流中读取的类描述符的类型不匹配

• 该类包含未知的数据类型

• 该类没有可访问的无参数构造函数

java.io.InvalidObjectException

表示一个或多个反序列化对象失败。

java.io.IOException

表示发生某种类型的I / O异常。 此类是由失败或中断的I / O操作产生的一般异常类。

java.io.NotSerializableException

序列换时未实现Serializable接口抛出。

java.io.ObjectStreamException

对象流类别特有的所有异常的超类。

java.io.OptionalDataException

表示由于未读原始数据导致的对象读取操作失败的异常,或属于流中序列化对象的数据的结束。 可能会在两种情况下抛出此异常:

• 当流中的下一个元素是原始数据时,尝试读取对象。 在这种情况下,OptionalDataException的length字段设置为从流中可以立即读取的原始数据的字节数,eof字段设置为false。

• 试图通过类定义的readObject或readExternal方法读取数据可消耗的结束。 在这种情况下,OptionalDataException的eof字段设置为true,长度字段设置为0。

java.io.StreamCorruptedException

当从对象流读取的控制信息违反内部一致性检查时抛出。

java.io.SyncFailedException

发出同步操作失败的信号。

java.io.UncheckedIOException

封装一个IOException与未经检查的异常。

java.io.UnsupportedEncodingException

字符编码不支持。

java.io.UTFDataFormatException

UTF-8字符串的格式不正确。

error:

java.io.IOError

当出现严重I / O错误时抛出。

java.lang.annotation

exception:

java.lang.annotation.AnnotationTypeMismatchException

若某个注释的类型在对该注释进行编译(或序列化)后发生了更改,而程序试图访问该注释的元素时,抛出此异常。

java.lang.annotation.IncompleteAnnotationException

若某个注释在编译(或序列化)后将某个注释类型添加到其类型定义中,而程序试图该注释类型的元素时,抛出此异常。

java.lang.annotation.AnnotationFormatError

当注释解析器试图从类文件读取注释并确定注释出现异常时,抛出该错误。

java.lang.instrument

java.lang.instrument.IllegalClassFormatException

当其输入参数无效时,由 ClassFileTransformer.transform 的实现抛出该异常。

java.lang.instrument.UnmodifiableClassException

在无法修改指定类之一时,由 Instrumentation.redefineClasses 的实现抛出此异常。

java.lang.reflect

java.lang.reflect.InvocationTargetException

InvocationTargetException 是一种包装由调用方法或构造方法所抛出异常的经过检查的异常。

java.lang.reflect.MalformedParameterizedTypeException

当反射方法遇到语义错误的参数化类型,而反射方法需要实例化该类型时,抛出该异常。

java.lang.reflect.UndeclaredThrowableException

如果代理实例的调用处理程序的 invoke 方法抛出一个经过检查的异常(不可分配给 RuntimeException 或 Error 的 Throwable),且该异常不可分配给该方法(在代理实例上调用该方法,并将其指派到调用处理程序)的 throws 子句中声明的任何异常类,则由代理实例上的方法调用抛出此异常。

java.lang.reflect.GenericSignatureFormatError

当需要解释类型、方法或构造方法的一般签名信息的反射方法遇到语法错误的签名属性时,抛出该错误。

java.net

java.net.BindException

试图将套接字绑定到本地地址和端口时发生错误的情况下,抛出此异常。

java.net.ConnectException

试图将套接字连接到远程地址和端口时发生错误的情况下,抛出此异常。

java.net.HttpRetryException

抛出此异常指示 HTTP 请求需要重试,但由于启用了流模式而无法自动重试。

java.net.MalformedURLException

抛出这一异常指示出现了错误的 URL。

java.net.NoRouteToHostException

试图将套接字连接到远程地址和端口时发生错误的情况下,抛出此异常。

java.net.PortUnreachableException

在连接的数据报上已接收到 ICMP Port Unreachable 消息时,抛出该异常。

java.net.ProtocolException

抛出此异常指示在底层协议中存在错误,如 TCP 错误。

java.net.SocketException

抛出此异常指示在底层协议中存在错误,如 TCP 错误。

java.net.SocketTimeoutException

如果在读取或接受套接字时发生超时,则抛出此异常。

java.net.UnknownHostException

指示主机 IP 地址无法确定而抛出的异常。

java.net.UnknownServiceException

抛出这一异常指示出现了未知服务异常。

java.net.URISyntaxException

抛出经过检查的指示字符串不能解析为 URI 引用的异常。

java.nio

java.nio.BufferOverflowException

当相关 put 操作达到目标缓冲区限制时,抛出此未经检查的异常。

java.nio.BufferUnderflowException

当相关 get 操作达到源缓冲区限制时,抛出此未经检查的异常。

java.nio.InvalidMarkException

当试图重置一个尚未定义其标记的缓冲区时,抛出此未检查的异常。

java.nio.ReadOnlyBufferException

当在只读缓冲区上调用内容可变(content-mutation)的方法(例如 put 或 compact 方法)时,抛出此未经检查的异常。

java.nio.channels

java.nio.channels.AlreadyConnectedException

试图对已经连接的 SocketChannel 进行连接时抛出的未经检查的异常。

java.nio.channels.AsynchronousCloseException

当在某个信道的 I/O 操作中处于阻塞状态的某个线程被另一个线程关闭了该信道或部分信道时,该信道所接收的经过检查的异常。

java.nio.channels.CancelledKeyException

当试图使用不再有效的选择键时,抛出此未经检查的异常。

java.nio.channels.ClosedByInterruptException

当在某个信道的 I/O 操作中处于阻塞状态的某个线程被另一个线程中断时,该线程将收到此经过检查的异常。

java.nio.channels.ClosedChannelException

当试图对已关闭的、或者至少对某个 I/O 操作已关闭的信道上调用或完成该操作时,抛出此经过检查的异常。

java.nio.channels.ClosedSelectorException

试图在已关闭的选择器上调用 I/O 操作时抛出的未经检查的异常。

java.nio.channels.ConnectionPendingException

试图连接一个正在进行非阻塞连接操作的 SocketChannel 时抛出的未经检查的异常。

java.nio.channels.FileLockInterruptionException

当某个线程正在等待获取文件定时被另一个线程中断,则由该线程接收此经过检查的异常。

java.nio.channels.IllegalBlockingModeException

当以错误的阻塞模式调用特定于某个阻塞模式的操作时,抛出此未经检查的异常。

java.nio.channels.IllegalSelectorException

试图将一个通道注册到一个不是由创建该通道的提供者所创建的选择器时,抛出此未经检查的异常。

java.nio.channels.NoConnectionPendingException

在没有首先成功调用 connect 方法的情况下调用 SocketChannel 的 finishConnect 方法时,抛出此未经检查的异常。

java.nio.channels.NonReadableChannelException

试图对一个最初未允许对其进行读取操作的通道进行读取时,抛出此未经检查的异常。

java.nio.channels.NonWritableChannelException

试图对一个最初未允许对其进行写入操作的通道进行写入时,抛出此未经检查的异常。

java.nio.channels.NotYetBoundException

试图在尚未绑定的服务器套接字通道上调用 I/O 操作时,抛出此未经检查的异常。

java.nio.channels.NotYetConnectedException

试图在尚未连接的套接字通道上调用 I/O 操作时,抛出此未经检查的异常。

java.nio.channels.OverlappingFileLockException

试图获取某个文件区域上的锁定,而该区域与同一 Java 虚拟机已锁定的某个区域重叠时,或者当另一个线程已经等待锁定同一文件的重叠区域时,抛出此未经检查的异常。

java.nio.channels.UnresolvedAddressException

试图对未解析的套接字地址调用网络操作时,抛出此未经检查的异常。

java.nio.channels.UnsupportedAddressTypeException

试图绑定或连接到一个其类型不受支持的套接字地址时,抛出此未经检查的异常。

java.nio.charset

java.nio.charset.CharacterCodingException

出现字符编码或解码错误时,抛出此经过检查的异常。

java.nio.charset.IllegalCharsetNameException

将一个不是合法 charset 名称的字符串用作 charset 名称时,抛出此未经检查的异常。

java.nio.charset.MalformedInputException

当输入字节序列对于给定 charset 来说是不合法的,或者输入字符序列不是合法的 16 位 Unicode 序列时,抛出此经过检查的异常。

java.nio.charset.UnmappableCharacterException

当输入字符(或字节)序列有效,但不能被映射为输出字节(或字符)序列时,抛出此经过检查的异常。

java.nio.charset.UnsupportedCharsetException

当不支持请求的 charset 时,抛出此未经检查的异常。

java.nio.charset.CoderMalfunctionError

当 CharsetDecoder 的 decodeLoop 方法,或 CharsetEncoder 的 encodeLoop 方法抛出不可预料的异常时抛出的错误。

java.sql

BatchUpdateException

进行批量更新操作期间发生错误时抛出的 SQLException 子类。

DataTruncation

以 DataTruncation 异常形式抛出的异常(写入时),或者由于除数据值超出 MaxFieldSize 之外的某种原因意外地截断该数据值时以 DataTruncation 警告形式报告的异常(读取时)。

SQLClientInfoException

当无法在 Connection 上设置一个或多个客户端信息属性时,抛出此 SQLException 的子类。

SQLDataException

当 SQLState 类值为“22”时抛出的 SQLException 子类。

SQLException

提供关于数据库访问错误或其他错误信息的异常。

SQLFeatureNotSupportedException

当 SQLState 类值为“0A”(值为“零”A)时抛出的 SQLException 子类。

SQLIntegrityConstraintViolationException

当 SQLState 类值为“23”时抛出的 SQLException 子类。

SQLInvalidAuthorizationSpecException

当 SQLState 类值为“28”时抛出的 SQLException 子类。

SQLNonTransientConnectionException

SQLState 类值为“08”时抛出的 SQLException 子类,表示在失败原因没有纠正的情况下重试操作时,失败的连接操作不会成功。

SQLNonTransientException

重试相同操作将失败(除非纠正了 SQLException 的 cause)的情况下抛出的 SQLException 子类。

SQLRecoverableException

应用程序执行某些恢复步骤并重试整个事务或事务分支(在分布式事务中)后,可以成功执行先前失败操作的情况下抛出的 SQLException 子类。

SQLSyntaxErrorException

当 SQLState 类值为“42”时抛出的 SQLException 子类。

SQLTimeoutException

Statement 指定的超时已到期时抛出的 SQLException 子类。

SQLTransactionRollbackException

当 SQLState 类值为“40”时,抛出此 SQLException 的子类。

SQLTransientConnectionException

SQLState 类值为“08”时抛出的 SQLException 子类,表示在没有进行任何应用程序级更改的情况下重试操作时,失败的连接操作可以成功。

SQLTransientException

没有任何应用程序级功能干预时,重试先前失败操作可以成功的情况下抛出的 SQLException 子类。

SQLWarning

提供关于数据库访问警告信息的异常。

java.util

ConcurrentModificationException

当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。

DuplicateFormatFlagsException

格式说明符中提供重复标志时抛出的未经检查的异常。

EmptyStackException

该异常由 Stack 类中的方法抛出,以表明堆栈为空。

FormatFlagsConversionMismatchException

转换与标志不兼容时抛出未经检查的异常。

FormatterClosedException

格式器已关闭时抛出的未经检查的异常。

IllegalFormatCodePointException

将具有 Character.isValidCodePoint(int) 所定义的无效 Unicode 代码点的字符传递给 Formatter 时,抛出未经检查的异常。

IllegalFormatConversionException

当对应于格式说明符的参数为不兼容的类型时,抛出未经检查的异常。

IllegalFormatException

当格式字符串包含非法语法,或者包含与给定参数不兼容的格式说明符时,将抛出未经检查的异常。

IllegalFormatFlagsException

当给出非法组合标志时,抛出未经检查的异常。

IllegalFormatPrecisionException

当精度为除 -1 以外的负值、转换类型不支持某个精度或者值在其他方面不受支持时,将抛出未经检查的异常。

IllegalFormatWidthException

当格式宽度为除 -1 以外的负值或其他不受支持的值时,将抛出未经检查的异常。

InputMismatchException

由 Scanner 抛出,表明获取的标记与期望类型的模式不匹配,或者该标记超出期望类型的范围。

InvalidPropertiesFormatException

当按照 Properties 规范,输入内容不符合属性集的正确 XML 文档类型,从而无法完成操作时,抛出此异常。

MissingFormatArgumentException

如果格式说明符没有相应的参数,或者参数索引引用了不存在的参数时,则抛出未经检查的异常。

MissingFormatWidthException

请求格式宽度时抛出未经检查的异常。

MissingResourceException

缺少资源时抛出此异常。

NoSuchElementException

由 Enumeration 的 nextElement 方法抛出,表明枚举中没有更多的元素。

TooManyListenersException

TooManyListenersException 异常用作 Java Event 模型的一部分来注释和实现多播 Event Source 的单播特例。

UnknownFormatConversionException

给定未知的转换时所抛出的未经检查的异常。

UnknownFormatFlagsException

给定未知标志时所抛出的未经检查的异常。

ServiceConfigurationError

在加载服务提供者的过程中出错时抛出的错误。

java.util.concurrent

BrokenBarrierException

当某个线程试图等待处于断开状态的 barrier 时,或者 barrier 进入断开状态而线程处于等待状态时,抛出该异常。

CancellationException

如果某项值生成任务(如 FutureTask)的结果因为任务被取消而无法获取到,则抛出该异常。

ExecutionException

当试图获取已通过抛出异常而中止的任务的结果时,抛出此异常。

RejectedExecutionException

当无法执行某个任务时,由 Executor 抛出的异常。

TimeoutException

阻塞操作超时时,抛出该异常。

javax.sql.rowset

RowSetWarning

SQLException 的一个扩展,提供关于在 RowSet 对象上设置的数据库警告的信息。

javax.sql.rowset.serial

SerialException

指示对 SQL 类型 BLOB、CLOB、STRUCT 或 ARRAY 以及 SQL 类型 DATALINK 和 JAVAOBJECT 进行序列化或反序列化时发生的错误。

javax.sql.rowset.spi

SyncFactoryException

指示 SyncFactory 机制发生的错误。

SyncProviderException

指示 SyncProvider 机制发生的错误。

更多文章欢迎访问 http://www.apexyun.com/

联系邮箱:public@space-explore.com

(未经同意,请勿转载)

原文 

http://www.apexyun.com/zui-quan-java/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 最全Java基础异常整理总结(持续更新)

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址