java.lang
异常算术条件时抛出。 例如,“除以零”的整数会抛出。
抛出以表示使用非法索引访问数组。 索引为负数或大于或等于数组的大小。
抛出以表示尝试将错误类型的对象存储到对象数组中。 例如,以下代码生成一个ArrayStoreException :
Object x[] = new String[3];
x[0] = new Integer(0);
抛出表示代码尝试将对象转换为不属于实例的子类。 例如,以下代码生成一个ClassCastException :
Object x = new Integer(0);
System.out.println((String)x);
当应用程序尝试通过其名称加载类时抛出:
• Class.forName方法 。
• ClassLoader.findSystemClass方法。
• ClassLoader.loadClass方法。
但是没有找到指定名称的类的定义。
对象的类未实现Cloneable接口。覆盖clone方法的应用程序也可以抛出此异常以指示对象无法或不应被克隆。
当应用程序尝试通过名称访问枚举常量时抛出,枚举类型不包含指定名称的常量。
当应用程序尝试反射创建实例(数组除外),设置或获取字段或调用方法时,当前执行的方法无法访问指定类,字段的定义,方法或构造函数。会抛出IllegalAccessException。
抛出表示方法传入了非法或不正确的参数。
线程尝试在对象的监视器上wait或notify,却没有拥有指定的监视器。
表示在非法或不适当的时间调用了一种方法。 换句话说,Java环境或Java应用程序对于请求的操作并不处于适当的状态。
抛出以指示线程处于所请求操作的不适当状态。
抛出以表示某种索引(例如数组,字符串或向量)的索引超出范围。
应用程序可以将此类子类化以指示类似的异常。
当应用程序尝试使用newInstance方法创建类的实例时抛出,但指定的类对象不能被实例化。 实例化可能由于各种原因而失败,包括但不限于:
• 类对象表示抽象类,接口
• 该类没有空值构造函数
被中止异常。当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。
一个应用程序尝试创建一个负数大小的数组抛出。
表示该类没有指定的字段。
当无法找到特定方法时抛出。
当应用程序尝试在需要对象的情况下为null时抛出。
将字符串转换为数字,格式错误。
核心反射中的反射操作所引起的异常的常见超类。
RuntimeException是在Java虚拟机的正常操作期间可以抛出的那些异常的超类。
RuntimeException及其子类是未经检查的异常 。 unchecked异常不需要在方法或构造函数throws。
由安全管理器抛出,表示安全违规。
索引为负或大于字符串的大小。对于某些方法(如charAt方法)。
使用表示类型名称的字符串访问类型时没有找到类型的定义抛出。此异常不同于ClassNotFoundException在ClassNotFoundException是检查的异常,而此异常是未经检查的。
抛出以表示不支持的操作。
当应用程序尝试调用抽象方法时抛出。
抛出以表明断言失败。
未找到其引导方法。
当Java虚拟机检测到正在加载的类的超类层次结构中的循环性时抛出。
当Java虚拟机尝试读取类文件并确定文件格式不正确或不能解释为类文件时抛出。
表示在静态初始化程序中发生意外异常。
如果应用程序尝试访问或修改某个字段,或调用无法访问的方法,则抛出此异常。
当一些类定义发生不兼容的类更改时抛出。 当前执行方法所依赖的某些类的定义已经改变了。
当应用程序尝试使用Java new构造来实例化抽象类或接口时抛出。
在Java虚拟机中引发了一些意外的内部错误。
一个类对另一个类有依赖,而后期运行时依赖的类发生变化导致异常。
Java虚拟机在编译时能找到类定义,而在运行时找不到导致的错误。
Java虚拟机在编译时能找到field,而在运行时找不到导致的错误。
Java虚拟机在编译时能找到方法(静态或实例),而在运行时找不到。
当Java虚拟机由于内存不足而无法分配对象时抛出。
在程序栈空间耗尽时抛出,通常是深度递归导致。
类的版本号不对。通常是由于高版本JDK编译在低版本JVM运行导致。
Java虚拟机编译的时候,”校验器"检测到一个类文件虽然格式正确,但包含着一些内部不一致性或安全性问题时,抛出该错误。
抛出以表明Java虚拟机已损坏或已耗尽资源。
java.io
字符转换异常的基类。
表示在输入过程中意外地到达文件结束或流结束。
这个异常主要由数据输入流用来表示流的结尾。 请注意,许多其他输入操作在流的末尾返回特殊值,而不是抛出异常。
指示尝试打开指定路径文件失败。
表示I / O操作已中断。 抛出一个InterruptedIOException表示输入或输出传输已被终止,因为执行它的线程被中断。
当序列化运行时检测到类中的以下问题之一时抛出。
• 类的串行版本与从流中读取的类描述符的类型不匹配
• 该类包含未知的数据类型
• 该类没有可访问的无参数构造函数
表示一个或多个反序列化对象失败。
表示发生某种类型的I / O异常。 此类是由失败或中断的I / O操作产生的一般异常类。
序列换时未实现Serializable接口抛出。
对象流类别特有的所有异常的超类。
表示由于未读原始数据导致的对象读取操作失败的异常,或属于流中序列化对象的数据的结束。 可能会在两种情况下抛出此异常:
• 当流中的下一个元素是原始数据时,尝试读取对象。 在这种情况下,OptionalDataException的length字段设置为从流中可以立即读取的原始数据的字节数,eof字段设置为false。
• 试图通过类定义的readObject或readExternal方法读取数据可消耗的结束。 在这种情况下,OptionalDataException的eof字段设置为true,长度字段设置为0。
当从对象流读取的控制信息违反内部一致性检查时抛出。
发出同步操作失败的信号。
封装一个IOException与未经检查的异常。
字符编码不支持。
UTF-8字符串的格式不正确。
error:
当出现严重I / O错误时抛出。
java.lang.annotation
exception:
若某个注释的类型在对该注释进行编译(或序列化)后发生了更改,而程序试图访问该注释的元素时,抛出此异常。
若某个注释在编译(或序列化)后将某个注释类型添加到其类型定义中,而程序试图该注释类型的元素时,抛出此异常。
当注释解析器试图从类文件读取注释并确定注释出现异常时,抛出该错误。
java.lang.instrument
当其输入参数无效时,由 ClassFileTransformer.transform 的实现抛出该异常。
在无法修改指定类之一时,由 Instrumentation.redefineClasses 的实现抛出此异常。
java.lang.reflect
InvocationTargetException 是一种包装由调用方法或构造方法所抛出异常的经过检查的异常。
当反射方法遇到语义错误的参数化类型,而反射方法需要实例化该类型时,抛出该异常。
如果代理实例的调用处理程序的 invoke 方法抛出一个经过检查的异常(不可分配给 RuntimeException 或 Error 的 Throwable),且该异常不可分配给该方法(在代理实例上调用该方法,并将其指派到调用处理程序)的 throws 子句中声明的任何异常类,则由代理实例上的方法调用抛出此异常。
当需要解释类型、方法或构造方法的一般签名信息的反射方法遇到语法错误的签名属性时,抛出该错误。
java.net
试图将套接字绑定到本地地址和端口时发生错误的情况下,抛出此异常。
试图将套接字连接到远程地址和端口时发生错误的情况下,抛出此异常。
抛出此异常指示 HTTP 请求需要重试,但由于启用了流模式而无法自动重试。
抛出这一异常指示出现了错误的 URL。
试图将套接字连接到远程地址和端口时发生错误的情况下,抛出此异常。
在连接的数据报上已接收到 ICMP Port Unreachable 消息时,抛出该异常。
抛出此异常指示在底层协议中存在错误,如 TCP 错误。
抛出此异常指示在底层协议中存在错误,如 TCP 错误。
如果在读取或接受套接字时发生超时,则抛出此异常。
指示主机 IP 地址无法确定而抛出的异常。
抛出这一异常指示出现了未知服务异常。
抛出经过检查的指示字符串不能解析为 URI 引用的异常。
java.nio
当相关 put 操作达到目标缓冲区限制时,抛出此未经检查的异常。
当相关 get 操作达到源缓冲区限制时,抛出此未经检查的异常。
当试图重置一个尚未定义其标记的缓冲区时,抛出此未检查的异常。
当在只读缓冲区上调用内容可变(content-mutation)的方法(例如 put 或 compact 方法)时,抛出此未经检查的异常。
java.nio.channels
试图对已经连接的 SocketChannel 进行连接时抛出的未经检查的异常。
当在某个信道的 I/O 操作中处于阻塞状态的某个线程被另一个线程关闭了该信道或部分信道时,该信道所接收的经过检查的异常。
当试图使用不再有效的选择键时,抛出此未经检查的异常。
当在某个信道的 I/O 操作中处于阻塞状态的某个线程被另一个线程中断时,该线程将收到此经过检查的异常。
当试图对已关闭的、或者至少对某个 I/O 操作已关闭的信道上调用或完成该操作时,抛出此经过检查的异常。
试图在已关闭的选择器上调用 I/O 操作时抛出的未经检查的异常。
试图连接一个正在进行非阻塞连接操作的 SocketChannel 时抛出的未经检查的异常。
当某个线程正在等待获取文件锁定时被另一个线程中断,则由该线程接收此经过检查的异常。
当以错误的阻塞模式调用特定于某个阻塞模式的操作时,抛出此未经检查的异常。
试图将一个通道注册到一个不是由创建该通道的提供者所创建的选择器时,抛出此未经检查的异常。
在没有首先成功调用 connect 方法的情况下调用 SocketChannel 的 finishConnect 方法时,抛出此未经检查的异常。
试图对一个最初未允许对其进行读取操作的通道进行读取时,抛出此未经检查的异常。
试图对一个最初未允许对其进行写入操作的通道进行写入时,抛出此未经检查的异常。
试图在尚未绑定的服务器套接字通道上调用 I/O 操作时,抛出此未经检查的异常。
试图在尚未连接的套接字通道上调用 I/O 操作时,抛出此未经检查的异常。
试图获取某个文件区域上的锁定,而该区域与同一 Java 虚拟机已锁定的某个区域重叠时,或者当另一个线程已经等待锁定同一文件的重叠区域时,抛出此未经检查的异常。
试图对未解析的套接字地址调用网络操作时,抛出此未经检查的异常。
试图绑定或连接到一个其类型不受支持的套接字地址时,抛出此未经检查的异常。
java.nio.charset
出现字符编码或解码错误时,抛出此经过检查的异常。
将一个不是合法 charset 名称的字符串用作 charset 名称时,抛出此未经检查的异常。
当输入字节序列对于给定 charset 来说是不合法的,或者输入字符序列不是合法的 16 位 Unicode 序列时,抛出此经过检查的异常。
当输入字符(或字节)序列有效,但不能被映射为输出字节(或字符)序列时,抛出此经过检查的异常。
当不支持请求的 charset 时,抛出此未经检查的异常。
当 CharsetDecoder 的 decodeLoop 方法,或 CharsetEncoder 的 encodeLoop 方法抛出不可预料的异常时抛出的错误。
java.sql
进行批量更新操作期间发生错误时抛出的 SQLException 子类。
以 DataTruncation 异常形式抛出的异常(写入时),或者由于除数据值超出 MaxFieldSize 之外的某种原因意外地截断该数据值时以 DataTruncation 警告形式报告的异常(读取时)。
当无法在 Connection 上设置一个或多个客户端信息属性时,抛出此 SQLException 的子类。
当 SQLState 类值为“22”时抛出的 SQLException 子类。
提供关于数据库访问错误或其他错误信息的异常。
当 SQLState 类值为“0A”(值为“零”A)时抛出的 SQLException 子类。
当 SQLState 类值为“23”时抛出的 SQLException 子类。
当 SQLState 类值为“28”时抛出的 SQLException 子类。
SQLState 类值为“08”时抛出的 SQLException 子类,表示在失败原因没有纠正的情况下重试操作时,失败的连接操作不会成功。
重试相同操作将失败(除非纠正了 SQLException 的 cause)的情况下抛出的 SQLException 子类。
应用程序执行某些恢复步骤并重试整个事务或事务分支(在分布式事务中)后,可以成功执行先前失败操作的情况下抛出的 SQLException 子类。
当 SQLState 类值为“42”时抛出的 SQLException 子类。
Statement 指定的超时已到期时抛出的 SQLException 子类。
当 SQLState 类值为“40”时,抛出此 SQLException 的子类。
SQLState 类值为“08”时抛出的 SQLException 子类,表示在没有进行任何应用程序级更改的情况下重试操作时,失败的连接操作可以成功。
没有任何应用程序级功能干预时,重试先前失败操作可以成功的情况下抛出的 SQLException 子类。
提供关于数据库访问警告信息的异常。
java.util
当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。
格式说明符中提供重复标志时抛出的未经检查的异常。
该异常由 Stack 类中的方法抛出,以表明堆栈为空。
转换与标志不兼容时抛出未经检查的异常。
格式器已关闭时抛出的未经检查的异常。
将具有 Character.isValidCodePoint(int) 所定义的无效 Unicode 代码点的字符传递给 Formatter 时,抛出未经检查的异常。
当对应于格式说明符的参数为不兼容的类型时,抛出未经检查的异常。
当格式字符串包含非法语法,或者包含与给定参数不兼容的格式说明符时,将抛出未经检查的异常。
当给出非法组合标志时,抛出未经检查的异常。
当精度为除 -1 以外的负值、转换类型不支持某个精度或者值在其他方面不受支持时,将抛出未经检查的异常。
当格式宽度为除 -1 以外的负值或其他不受支持的值时,将抛出未经检查的异常。
由 Scanner 抛出,表明获取的标记与期望类型的模式不匹配,或者该标记超出期望类型的范围。
当按照 Properties 规范,输入内容不符合属性集的正确 XML 文档类型,从而无法完成操作时,抛出此异常。
如果格式说明符没有相应的参数,或者参数索引引用了不存在的参数时,则抛出未经检查的异常。
请求格式宽度时抛出未经检查的异常。
缺少资源时抛出此异常。
由 Enumeration 的 nextElement 方法抛出,表明枚举中没有更多的元素。
TooManyListenersException 异常用作 Java Event 模型的一部分来注释和实现多播 Event Source 的单播特例。
给定未知的转换时所抛出的未经检查的异常。
给定未知标志时所抛出的未经检查的异常。
在加载服务提供者的过程中出错时抛出的错误。
java.util.concurrent
当某个线程试图等待处于断开状态的 barrier 时,或者 barrier 进入断开状态而线程处于等待状态时,抛出该异常。
如果某项值生成任务(如 FutureTask)的结果因为任务被取消而无法获取到,则抛出该异常。
当试图获取已通过抛出异常而中止的任务的结果时,抛出此异常。
当无法执行某个任务时,由 Executor 抛出的异常。
阻塞操作超时时,抛出该异常。
javax.sql.rowset
SQLException 的一个扩展,提供关于在 RowSet 对象上设置的数据库警告的信息。
javax.sql.rowset.serial
指示对 SQL 类型 BLOB、CLOB、STRUCT 或 ARRAY 以及 SQL 类型 DATALINK 和 JAVAOBJECT 进行序列化或反序列化时发生的错误。
javax.sql.rowset.spi
指示 SyncFactory 机制发生的错误。
指示 SyncProvider 机制发生的错误。
更多文章欢迎访问 http://www.apexyun.com/
联系邮箱:public@space-explore.com
(未经同意,请勿转载)