Java常见异常类【整理】

常见异常类

《码出高效:Java开发手册》一书中提出的异常分类方法虽然在逻辑上更为合理,但此处主要结合API介绍常见的异常类,所以还是采用传统的异常体系结构。

此处API版本采用JavaSE1.8 API。

在线API地址https://docs.oracle.com/javase/8/docs/api/

Error

异常类

所属包

异常描述

AnnotationFormatError

java.lang.annotation

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

AssertionError

java.lang

断言错误。当某个断言(assert)失败时,抛出该异常。

AWTError

java.awt

抽象窗口工具包错误。表示发生了严重的抽象窗口工具包(Absract Window Toolkit) 异常。

CoderMalfunctionError

java.nio.charset

编码器故障错误。使用CharsetDecoder的decodeLoop方法或CharsetEncoder的encodeLoop方法时,可能出现的编码器/解码器异常。

FactoryConfigurationError

javax.xml.parsers

解析工厂配置错误。当解析器工厂的配置存在问题时抛出。当无法找到或实例化系统属性中指定的解析器工厂的类时,通常会引发此错误。

FactoryConfigurationError

javax.xml.stream

工厂配置错误。用于报告工厂配置错误的错误类。

IOError

java.io

输入输出错误。当发生严重的I/O错误时抛出。

LinkageError

java.lang

连接错误。LinkageError的子类表示一个类对另一个类具有某种依赖关系;但是,后一个类在编译前一个类之后发生了不兼容的变化。

其子类包括

- BootstrapMethodError,

- ClassCircularityError,

- ClassFormatError,

- ExceptionInInitializerError,

- IncompatibleClassChangeError,

- NoClassDefFoundError,

- UnsatisfiedLinkError,

- VerifyError

SchemaFactoryConfigurationError

javax.xml.validation

模式工厂配置错误。当模式工厂的配置存在问题时抛出。当无法找到或实例化系统属性中指定的模式工厂的类时,通常会引发此错误。

ServiceConfigurationError

java.util

服务配置错误。加载服务提供程序时出错时抛出的错误。

此错误将在以下情况下抛出:

- provider-configuration文件的格式违反规范;

- 读取provider-configuration文件时发生IOException;

- 无法找到在provider-configuration中命名的具体提供类;

- 具体的提供类不是服务提供类的子类;

- 无法实例化具体的服务提供类;

- 还会发生其他类型的错误。

ThreadDeath

java.lang

线程死亡错误。当调用(已废弃的)thread .stop()方法时,ThreadDeath的实例被抛出到受害线程中。

应用程序只有在必须在异步终止后进行清理时才应该捕获该类的实例。如果ThreadDeath被一个方法捕获,那么必须重新抛出它,这样线程才会死。

TransformerFactoryConfigurationError

javax.xml.transform

转换工厂配置错误。当转换工厂的配置存在问题时抛出。当无法找到或实例化系统属性中指定的转换工厂的类时,通常会引发此错误。

VirtualMachineError

java.lang

虚拟机错误。当Java虚拟机已损坏或已耗尽继续运行所需的资源时,抛出该异常

RuntimeException

异常类

所属包

异常描述

AnnotationTypeMismatchException

java.lang.annotation

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

ArithmeticException

java.lang

算数异常。当出现异常的运算条件时,抛出此异常。如整数除以0时。

ArrayStoreException

java.lang

数组存储异常。试图将错误类型的对象存储到一个对象数组时抛出的异常。

BufferOverflowException

java.nio

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

CannotRedoException

javax.swing.undo

无法重做异常。当 UndoableEdit 被告知使用redo() 但无法执行时抛出。

CannotUndoException

javax.swing.undo

无法撤销异常。当 UndoableEdit 被告知使用redo() 但无法执行时抛出。

ClassCastException

java.lang

类转型异常。当试图将对象强制转换为不是实例的子类时,抛出该异常。

CMMException

java.awt.color

CMM异常。如果本机CMM返回一个错误,则抛出此异常。

CompletionException

java.util.concurrent

完成时异常。在完成结果或任务过程中遇到错误或其他异常时引发异常。

ConcurrentModificationException

java.util

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

直接已知子类包括:

DirectoryIteratorException

DataBindingException

javax.xml.bind

数据绑定异常。表示JAXB操作失败的异常。

这个异常与JAXBException的不同之处在于,它是一个未检查异常,而JAXBException是一个检查异常。

DateTimeException

java.time

日期时间异常。此异常用于在计算日期-时间时指示问题。

此异常用于指示创建、查询和操作日期-时间对象方面的问题。

直接已知子类包括:

- DateTimeParseException,

- UnsupportedTemporalTypeException,

- ZoneRulesException

DOMException

org.w3c.dom

文档对象模型异常。DOM操作只在“exceptional”情况下引发异常,即,当某个操作无法执行时(出于逻辑原因,因为数据丢失,或者因为实现变得不稳定)。一般来说,DOM方法在普通的处理情况下返回特定的错误值,例如使用NodeList时的越界错误。

EmptyStackException

java.util

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

EnumConstantNotPresentException

java.lang

枚举常量不存在异常。当应用程序试图按名称访问枚举常量,且枚举类型不包含具有指定名称的常量时引发。用于反射性读取注释的API可以引发此异常。

EventException

org.w3c.dom.events

事件异常。事件操作可以按照其方法描述中指定的方式抛出EventException。

详情请参阅文档对象模型(DOM)第2级事件规范。

FileSystemAlreadyExistsException

java.nio.file

文件系统已存在异常。当试图创建已存在的文件系统时引发运行时异常。

FileSystemNotFoundException

java.nio.file

文件系统不存在异常。无法找到文件系统时引发的运行时异常。

IllegalArgumentException

java.lang

非法参数异常。抛出的异常表明向方法传递了一个不合法或不正确的参数。

直接已知子类包括:

- IllegalChannelGroupException

- IllegalCharsetNameException

- IllegalFormatException

- IllegalSelectorException

- IllegalThreadStateException

- InvalidKeyException

- InvalidOpenTypeException

- InvalidParameterException

- InvalidPathException

- KeyAlreadyExistsException

- NumberFormatException

- PatternSyntaxException

- ProviderMismatchException

- UnresolvedAddressException

- UnsupportedAddressTypeException

- UnsupportedCharsetException

IllegalMonitorStateException

java.lang

非法监控状态异常。抛出的异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程

IllegalPathStateException

java.awt.geom

非法路径状态异常。对于正在执行的特定操作而言,如果操作在处于非法状态的路径上执行,则抛出该异常。

IllegalStateException

java.lang

非法状态异常。在非法或不适当的时间调用方法时产生信号,将抛出该异常。

直接已知子类包括:

- AcceptPendingException

- AlreadyBoundException

- AlreadyConnectedException

- CancellationException

- CancelledKeyException

- ClosedDirectoryStreamException

- ClosedFileSystemException

- ClosedSelectorException

- ClosedWatchServiceException

- ConnectionPendingException

- FormatterClosedException

- IllegalBlockingModeException

- IllegalComponentStateException

- InvalidDnDOperationException

- InvalidMarkException

- NoConnectionPendingException

- NonReadableChannelException

- NonWritableChannelException

- NotYetBoundException

- NotYetConnectedException

- OverlappingFileLockException

- ReadPendingException

- ShutdownChannelGroupException

- WritePendingException

IllformedLocaleException

java.util

不合语法的Locale异常。由Locale和Locale中的方法抛出。表示参数不符合BCP 47标记格式。

ImagingOpException

java.awt.image

成像操作异常。如果某个 BufferedImageOp 或 RasterOp 过滤器方法无法处理图像,则抛出 ImagingOpException。

IncompleteAnnotationException

java.lang.annotation

注解不完备异常。若某个注释在编译(或序列化)后将某个注释类型添加到其类型定义中,而程序试图该注释类型的元素时,抛出此异常。如果新元素有默认值,则不抛出此异常。

IndexOutOfBoundsException

java.lang

索引越界异常。指示某索引(例如数组、字符串或向量的索引)超出范围时抛出。

应用程序可以为这个类创建子类,以指示类似的异常。

直接已知子类包括:

- ArrayIndexOutOfBoundsException

- StringIndexOutOfBoundsException

JMRuntimeException

javax.management

Java管理扩展运行时异常。由 JMX 实现所发出的运行时异常。

直接已知子类包括:

- MonitorSettingException

- RuntimeErrorException

- RuntimeMBeanException

- RuntimeOperationsException

LSException

org.w3c.dom.ls

Load&Sava异常。如果停止处理,解析或写操作可能会抛出LSException。

处理可能因带有严重的 DOMError.SEVERITY_FATAL_ERROR 或不可恢复的 DOMError.SEVERITY_ERROR 的 DOMError,或者如果 DOMErrorHandler.handleError() 返回 false 而停止。

MalformedParameterizedTypeException

java.lang.reflect

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

MirroredTypesException

javax.lang.model.type

镜像类型异常。当应用程序试图访问每个对应于 TypeMirror 的 Class 对象的序列时,抛出此异常。

MissingResourceException

java.util

缺失资源异常。缺少资源时抛出此异常。

NegativeArraySizeException

java.lang

负数组长度异常。如果应用程序试图创建大小为负的数组,则抛出该异常。

NoSuchElementException

java.util

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

NoSuchMechanismException

javax.xml.crypto

无该机制异常。当请求特定的XML机制,但该机制在环境中不可用时,将引发此异常。

NoSuchMechanismException可以包含一个原因:另一个可抛出的原因导致这个NoSuchMechanismException被抛出。

NullPointerException

java.lang

空指针异常。当应用程序试图在需要对象的情况下使用null时抛出。这些包括:

- 调用空对象的实例方法

- 访问或修改空对象的字段

- 将 null 作为一个数组,并进行取长度、按索引访问元素等操作时

- 将 null 作为 Throwable 值抛出

应用程序应该抛出该类的实例,以指示null对象的其他非法使用。

ProfileDataException

java.awt.color

Profile数据异常。当访问或处理 ICC_Profile 对象出现错误时,抛出此异常。

ProviderException

java.security

Provider异常。用于 Provider 异常(例如误配置错误或不可恢复的内部错误)的运行时异常,Provider 可以为它创建子类以抛出特殊的、特定于 provider 的运行时错误。

ProviderNotFoundException

java.nio.file

Provider不存在异常。当无法找到所需类型的Provider程序时引发运行时异常。

RasterFormatException

java.awt.image

光栅格式异常。如果 Raster 中存在无效的布局信息,则抛出 RasterFormatException。

RejectedExecutionException

java.util.concurrent

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

SecurityException

java.lang

安全异常。由安全管理器抛出的异常,指示存在安全侵犯。

直接已知子类包括:

AccessControlException,

RMISecurityException

SystemException

org.omg.CORBA

系统异常。所有 CORBA 标准异常的根类。这些异常可以作为任何 CORBA 操作调用的结果抛出,还可以由许多标准 CORBA API 方法返回。标准异常包含次要代码 (minor code) 以提供更详细的说明,此外还包含完成状态。可以为此类创建子类,以生成标准 ORB 异常集合中的每一个异常。SystemException 扩展了 java.lang.RuntimeException,因此在映射自 IDL 接口的操作的 Java 方法的签名中无需声明任何 SystemException 异常。

直接已知子类包括:

- ACTIVITY_COMPLETED

- ACTIVITY_REQUIRED

- BAD_CONTEXT

- BAD_INV_ORDER

- BAD_OPERATION

- BAD_PARAM

- BAD_QOS

- BAD_TYPECODE

- CODESET_INCOMPATIBLE

- COMM_FAILURE

- DATA_CONVERSION

- FREE_MEM

- IMP_LIMIT

- IndirectionException,

- INITIALIZE

- INTERNAL

- INTF_REPOS

- INV_FLAG

- INV_IDENT,

- INV_OBJREF

- INV_POLICY

- INVALID_ACTIVITY

- INVALID_TRANSACTION

- MARSHAL

- NO_IMPLEMENT

- NO_MEMORY

- NO_PERMISSION

- NO_RESOURCES

- NO_RESPONSE

- OBJ_ADAPTER

- OBJECT_NOT_EXIST

- PERSIST_STORE

- REBIND

- TIMEOUT

- TRANSACTION_MODE

- TRANSACTION_REQUIRED

- TRANSACTION_ROLLEDBACK

- TRANSACTION_UNAVAILABLE

- TRANSIENT

- UNKNOWN

- UnknownException

TypeConstraintException

javax.xml.bind

种类约束异常。此异常指示已检测到存在违反动态检查的类型约束的情况。

TypeNotPresentException

java.lang

类型未定义异常。当应用程序试图使用表示类型名称的字符串对类型进行访问,但无法找到带有指定名称的类型定义时,抛出该异常。此异常与 ClassNotFoundException 不同,ClassNotFoundException 是一个经过检查的异常,而此异常是未经检查的。

注意,当访问未定义的类型变量时,以及当加载类型(例如,类、接口或注释类型)时,可以使用此异常。

UncheckedIOException

java.io

未受检IO异常。用未检查异常包装IOException。

UndeclaredThrowableException

java.lang.reflect

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

UndeclaredThrowableException 实例包含由调用处理程序抛出的经过检查的未声明异常,而且可以使用 getUndeclaredThrowable() 方法获取。UndeclaredThrowableException 扩展了 RuntimeException,因此它是一个包装已检查异常的未经检查的异常。

UnknownEntityException

javax.lang.model

未知实体异常。表示遇到了未知类型的实体。如果语言不断发展并引入新的结构,就会出现这种情况。此异常的子类可能由访问者抛出,以指示该访问者是为该语言的先前版本创建的。

这些异常的公共超类允许单个catch块由代码统一地处理它们。

直接已知子类包括:

- UnknownAnnotationValueException

- UnknownElementException

- UnknownTypeException

UnmodifiableSetException

javax.print.attribute

不可修改设置异常。当由于设置不可修改而无法执行请求的操作时,抛出该异常。

UnsupportedOperationException

java.lang

不支持操作异常。当不支持请求的操作时,抛出该异常。

此类是Java集合框架的成员。

直接已知子类包括:

- HeadlessException

- ReadOnlyBufferException

WebServiceException

javax.xml.ws

网络服务异常。WebServiceException 类是所有 JAX-WS API 运行时异常的基本异常类。

直接已知子类包括:

- ProtocolException

WrongMethodTypeException

java.lang.invoke

错误方法类型异常。指示代码试图通过错误的方法类型调用方法句柄。与普通Java方法调用的字节码表示一样,方法句柄调用被强类型化为与调用站点关联的特定类型描述符。

当组合了两个方法句柄,并且系统检测到它们的类型不能正确匹配时,也可能引发此异常。这相当于在方法句柄构造时(而不是在调用不匹配的方法句柄时)对类型不匹配进行早期评估

非运行时异常

异常类

所属包

异常描述

AclNotFoundException

java.security.acl

访问控制列表不存在异常。如果对不存在的 ACL(访问控制列表)进行引用,则抛出此异常。

ActivationException

java.rmi.activation

激活异常。激活接口所使用的一般异常。

直接已知子类包括:

- UnknownGroupException

- UnknownObjectException

AlreadyBoundException

java.rmi

已绑定异常。如果试图将注册表中的对象绑定到已具有相关绑定的名称上,则抛出 AlreadyBoundException。

ApplicationException

org.omg.CORBA.portable

应用程序异常。此类用来报告 ORBs 和 stubs 之间的应用程序级异常。

AWTException

java.awt

抽象窗口工具包异常。表示发生了抽象窗口工具包(Absract Window Toolkit)异常。

BackingStoreException

java.util.prefs

辅助存储器异常。抛出该异常表明由于内部存储故障或者不能联系内部存储而无法完成 preferences 操作。

BadAttributeValueExpException

javax.management

坏属性值异常。向构造的查询方法传递无效的 MBean 属性时,抛出此异常。在查询计算期间,由 JMX 在内部使用此异常。用户代码通常无法看到它。

BadBinaryOpValueExpException

javax.management

向构造查询的方法传递无效的表达式时,抛出此异常。在查询计算期间,由 JMX 在内部使用此异常。用户代码通常无法看到它。

BadLocationException

javax.swing.text

坏位置异常。此异常的目的是报告文档模型中的损坏位置(即试图引用一个不存在的位置)。

BadStringOperationException

javax.management

坏字符串操作异常。向构造查询的方法传递无效的字符串操作时,抛出此异常。

BrokenBarrierException

java.util.concurrent

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

CertificateException

javax.security.cert

证书异常。此异常指示各种证书问题之一。

直接已知子类包括:

- CertificateEncodingException

- CertificateExpiredException

- CertificateNotYetValidException

- CertificateParsingException

CloneNotSupportedException

java.lang

不支持克隆异常。当调用 Object 类中的 clone 方法复制对象,但该对象的类无法实现 Cloneable 接口时,抛出该异常。

重写 clone 方法的应用程序也可能抛出此异常,指示不能或不应复制一个对象。

DataFormatException

java.util.zip

数据格式异常。表示发生了数据格式错误。

DatatypeConfigurationException

javax.xml.datatype

数据类型配置异常。指示严重的配置错误。

DestroyFailedException

javax.security.auth

销毁失败异常。当 destroy 操作失败时,抛出此异常。

此异常由实现 Destroyable 接口的证书在 destroy 方法失败时抛出。

ExecutionException

java.util.concurrent

执行异常。当试图获取已通过抛出异常而中止的任务的结果时,抛出此异常。可以使用 Throwable.getCause() 方法来检查此异常。

ExpandVetoException

javax.swing.tree

扩展阻止异常。用于阻止扩展/折叠发生的异常。有关更多信息和示例,请参阅 The Java Tutorial 中的 How to Write a Tree-Will-Expand Listener 一节。

FontFormatException

java.awt

字体格式异常。此异常由 Font 类中的 createFont 方法抛出,以指示指定的字体是错误的。

GeneralSecurityException

java.security

一般安全异常。eneralSecurityException 类是一个一般安全异常类,可以为所有从其扩展的与安全有关的异常类提供类型安全。

直接已知子类包括:

- BadPaddingException

- CertificateException

- CertPathBuilderException

- CertPathValidatorException

- CertStoreException

- CRLException

- DigestException

- ExemptionMechanismException

- IllegalBlockSizeException

- InvalidAlgorithmParameterException

- InvalidKeySpecException

- InvalidParameterSpecException

- KeyException

- KeyStoreException

- LoginException

- NoSuchAlgorithmException

- NoSuchPaddingException

- NoSuchProviderException

- ShortBufferException

- SignatureException

- UnrecoverableEntryException

GSSException

org.ietf.jgss

通用安全服务异常。每当发生 GSS-API 错误(包括任何特定于机制的错误)时,都会抛出此异常。它包括主要和次要的 GSS-API 状态码。主要错误代码是指那些在此类的 GSS-API 级别定义的代码。次要错误代码是指特定于机制的错误代码,他们可以提供附加的信息。基础机制实现负责在抛出此异常时设置适当的次要状态码除向调用者提供数值错误代码外,此类还执行从其数值到文本表示形式的映射。

IllegalClassFormatException

java.lang.instrument

非法类格式异常。当其输入参数无效时,由 ClassFileTransformer.transform 的实现抛出该异常。抛出此异常的原因或者由于初始类文件字节无效,或者由于以前应用的转换损坏了字节。

InterruptedException

java.lang

当线程在活动之前或活动期间处于正在等待、休眠或占用状态且该线程被中断时,抛出该异常。有时候,一种方法可能希望测试当前线程是否已被中断,如果已被中断,则立即抛出此异常。

IntrospectionException

java.beans

内省异常。在 Introspection 期间发生异常时抛出异常。

典型的原因包括:无法将字符串类名称映射到 Class 对象、无法解析字符串方法名,或者指定对其用途而言具有错误类型签名的方法名称。

InvalidApplicationException

javax.management

无效应用程序异常。程序试图应用下列任一内容时抛出此异常:对 MBean 应用子查询表达式或对错误类的 MBean 应用完全限定属性表达式。在查询计算期间由 JMX 在内部使用此异常。用户代码通常无法看到它。

InvalidMidiDataException

javax.sound.midi

无效MIDI数据异常。一个 InvalidMidiDataException,指示遇到了不恰当的 MIDI 数据。这通常意味着,从 MIDI 规范角度来看,此数据输入本身或数据内部无效。一个示例是未定义的状态字节。然而,此异常可能只意味着此数据在使用它的环境中无效,或者接收此数据的对象无法解析或使用它。例如,尽管在 MIDI 规范中定义了 Type 2 MIDI 文件格式,但文件读取器可能无法解析 Type 2 MIDI 文件。

InvalidPreferencesFormatException

java.util.prefs

无效Preferences格式异常。抛出此异常表明根据 Preferences 规范,输入内容不符合 preferences 集的正确 XML 文档类型,从而无法完成操作。

InvalidTargetObjectTypeException

javax.management.modelmbean

无效目标对象类型异常。当指定了无效的目标对象类型时,抛出此异常。

IOException

java.io

输入/输出异常。当发生某种 I/O 异常时,抛出此异常。此类是失败或中断的 I/O 操作生成的异常的通用类。

直接已知子类包括:

- ChangedCharSetException

- CharacterCodingException

- CharConversionException

- ClosedChannelException

- EOFException

- FileLockInterruptionException

- FileNotFoundException

- FilerException

- FileSystemException

- HttpRetryException

- IIOException,

- InterruptedByTimeoutException

- InterruptedIOException

- InvalidPropertiesFormatException

- JMXProviderException

- JMXServerErrorException

- MalformedURLException

- ObjectStreamException

- ProtocolException

- RemoteException

- SaslException

- SocketException

- SSLException

- SyncFailedException

- UnknownHostException

- UnknownServiceException

- UnsupportedDataTypeException

- UnsupportedEncodingException

- UserPrincipalNotFoundException

- UTFDataFormatException

- ZipException

JAXBException

javax.xml.bind

JAXB异常。这是所有 JAXB 异常的根异常类。

直接已知子类包括:

- MarshalException

- PropertyException

- UnmarshalException

- ValidationException

JMException

javax.management

JME异常。由 JMX 实现所抛出的异常。它不包括运行时异常。

直接已知子类包括:

- MbeanException

- OpenDataException

- OperationsException

- ReflectionException

- RelationException

KeySelectorException

javax.xml.crypto

密钥选择器异常。指示由 KeySelector 抛出的异常条件。 

KeySelectorException 可以包含一个原因:即另一个导致抛出此 KeySelectorException 的 throwable。

LambdaConversionException

java.lang.invoke

Lambda表达式转换异常。

LastOwnerException

java.security.acl

最后拥有者异常。如果试图删除访问控制列表的最后一个所有者,则抛出此异常。

LineUnavailableException

javax.sound.sampled

行不可用异常。LineUnavailableException 是指示某一行因为不可用而无法打开的异常。此情况通常在请求的行已由另一个应用程序使用时发生。

MarshalException

javax.xml.crypto

编组异常。指示 XML 编组或解组过程中发生的异常条件。

MarshalException 可以包含一个原因:另一个导致抛出此 MarshalException 的 throwable。

MidiUnavailableException

javax.sound.midi

MIDI不可用异常。当请求的 MIDI 组件由于不可用而无法打开或创建时,抛出 MidiUnavailableException 异常。当设备由另一个应用程序使用时经常出现这种情况。更一般的情况是,有限数量的某种资源可用于某种用途,而所有这些资源都正在使用(可能都由此应用程序使用)时,会出现这种情况。

MimeTypeParseException

java.awt.datatransfer

MimeType分析异常。对分析相关异常的 MimeType 进行封装的类。

MimeTypeParseException

javax.activation

MimeType解析异常。封装与 MimeType 解析相关的异常的类。

NamingException

javax.naming

命名异常。此异常是 Context 和 DirContext 接口中的操作抛出的所有异常的超类。失败的特性由子类的名称描述。此异常捕获指出操作失败处的信息,比如解析最后进行到的位置。

- 已解析名称。已解析的名称部分。

- 已解析对象。名称解析已进行到其所在位置的对象。

- 剩余名称。尚未解析的名称部分。

- 解释。解释名称解析失败原因的详细信息。

- 根异常。导致抛出此命名异常的异常。

所有这些字段都可以为 null 值。字段值为 null 意味着没有为该字段记录此类信息。

NamingException 实例与并发多线程访问不同步。试图访问和修改单个 NamingException 实例的多个线程应该锁定对象。

直接已知子类包括:

- AttributeInUseException

- AttributeModificationException

- CannotProceedException

- CommunicationException

- ConfigurationException

- ContextNotEmptyException

- InsufficientResourcesException

- InterruptedNamingException

- InvalidAttributeIdentifierException

- InvalidAttributesException

- InvalidAttributeValueException

- InvalidNameException

- InvalidSearchControlsException

- InvalidSearchFilterException

- LimitExceededException

- LinkException

- NameAlreadyBoundException

- NameNotFoundException

- NamingSecurityException

- NoInitialContextException

- NoSuchAttributeException

- NotContextException

- OperationNotSupportedException

- PartialResultException

- ReferralException

- SchemaViolationException

- ServiceUnavailableException

NoninvertibleTransformException

java.awt.geom

不可逆转换异常。oninvertibleTransformException 类表示在执行的操作要求 AffineTransform 对象可逆但 AffineTransform 处于不可逆状态时抛出的异常。

NoSuchFieldException

java.lang

无此字段异常。类不包含指定名称的字段时产生的信号。

NoSuchMethodException

java.lang

无此方法异常。无法找到某一特定方法时,抛出该异常。

NotBoundException

java.rmi

无绑定异常。如果试图在注册表中查找或解绑没有相关绑定的名称,则抛出 NotBoundException。

NotOwnerException

java.security.acl

无所有者异常。当只允许对象(如访问控制列表)的所有者修改对象,但是试图进行修改的 Principal 不是所有者时,抛出此异常。

ParseException

java.text

解析异常。表示解析时出现意外错误。

ParserConfigurationException

javax.xml.parsers

解析配置异常。指示一个严重的配置错误。

PrinterException

java.awt.print

打印机异常。PrinterException 类及其子类用于指示打印系统中发生的异常情况。

直接已知子类包括:

- PrinterAbortException

- PrinterIOException

PrintException

javax.print

打印异常。类 PrintException 封装了与打印有关的错误状况,此状况在使用 PrintService 实例时会发生。此基类仅提供对该错误的字符串描述。如果适用,子类可提供更详细的信息。

PrivilegedActionException

java.security

特权行为异常。doPrivileged(PrivilegedExceptionAction) 和 doPrivileged(PrivilegedExceptionAction, AccessControlContext context) 抛出此异常来指示执行的操作抛出了经过检查的异常。可以通过调用 getException 方法捕获操作抛出的异常。实际上,PrivilegedActionException 是特权操作抛出的异常的“包装器”。

PropertyVetoException

java.beans

属性否决异常。当某一属性的提议更改表示一个不可接受的值时,将抛出 PropertyVetoException。

ReflectiveOperationException

java.lang

反射操作异常。由核心反射中的反射操作引发的常见异常超类。

直接已知子类包括:

- ClassNotFoundException

- IllegalAccessException

- InstantiationException

- InvocationTargetException

- NoSuchFieldException

- NoSuchMethodException

RefreshFailedException

javax.security.auth

刷新失败异常。当 refresh 操作失败时,抛出此异常。

此异常由实现 Refreshable 接口的证书在 refresh 方法失败时抛出。

RemarshalException

org.omg.CORBA.portable

Remarshal异常。此类用来报告本地转发异常,以及发回 ORB 的对象转发 GIOP 信息。在这种情况下,重试前 ORB 必须重新编组请求。使用基于流模式的 Stub 应该捕获 RemarshalException,该异常可能从 ObjectImpl 的 _invoke() 方法抛出。一旦捕获到该异常,stub 应立即重新编组请求:调用 _request(),编组参数(如果有),然后调用 _invoke()。在 _invoke() 正常返回或引发 RemarshalException 以外的异常前,stub 应重复此过程。

RuntimeException

java.lang

运行时异常。RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。

可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。

直接已知子类包括:

- AnnotationTypeMismatchException

- ArithmeticException

- ArrayStoreException

- BufferOverflowException

- BufferUnderflowException

- CannotRedoException

- CannotUndoException

- ClassCastException

- CMMException

- CompletionException

- ConcurrentModificationException

- DataBindingException

- DateTimeException

- DOMException

- EmptyStackException

- EnumConstantNotPresentException

- EventException

- FileSystemAlreadyExistsException

- FileSystemNotFoundException

- IllegalArgumentException

- IllegalMonitorStateException

- IllegalPathStateException

- IllegalStateException

- IllformedLocaleException

- ImagingOpException

- IncompleteAnnotationException

- IndexOutOfBoundsException

- JMRuntimeException

- LSException

- MalformedParameterizedTypeException

- MalformedParametersException

- MirroredTypesException

- MissingResourceException

- NegativeArraySizeException

- NoSuchElementException

- NoSuchMechanismException

- NullPointerException

- ProfileDataException

- ProviderException

- ProviderNotFoundException

- RasterFormatException

- RejectedExecutionException

- SecurityException

- SystemException

- TypeConstraintException

- TypeNotPresentException

- UncheckedIOException

- UndeclaredThrowableException

- UnknownEntityException

- UnmodifiableSetException

- UnsupportedOperationException

- WebServiceException

- WrongMethodTypeException

SAXException

org.xml.sax

XML简单API异常。封装一般的 SAX 错误或警告。

直接已知子类包括:

- SAXNotRecognizedException

- SAXNotSupportedException

- SAXParseException

ScriptException

javax.script

脚本异常。脚本 API 的一般 Exception 类。由底层脚本实现抛出的经过检查的异常类型必须包装在 ScriptException 的实例中。该类具有存储行号和列号的成员,如果文件名信息可用,还具有存储文件名的成员。

ServerNotActiveException

java.rmi.server

服务未激活异常。如果在服务于远程方法调用之外调用 getClientHost 方法,则 ServerNotActiveException 是在调用 RemoteServer.getClientHost 的过程中抛出的 Exception。

SOAPException

javax.xml.soap

简易对象访问协议异常。当发生 SOAP 异常时,抛出此异常。SOAPException 对象可以包含给出异常原因的 String 或嵌入的 Throwable 对象,也可以同时包含两者。此类提供检索原因消息的方法和检索嵌入 Throwable 对象的方法。

抛出 SOAPException 对象的通常原因是难以设置头、无法发送消息以及无法获取与提供者的连接之类的问题。嵌入 Throwable 对象的原因包括诸如输入/输出错误之类的问题或解析问题,如解析头时出现错误。

SQLException

java.sql

结构化查询语言异常。提供关于数据库访问错误或其他错误信息的异常。

每个 SQLException 都可提供以下多种消息:

- 描述错误的字符串。此字符串用作 Java Exception 消息,可以通过方法 getMessage 获得。

- "SQLstate" 字符串,该字符串遵守 XOPEN SQLstate 约定或 SQL:2003 约定。SQLState 字符串的值在适当的规范中描述。DatabaseMetaData 的方法 getSQLStateType 可用于确定驱动程序返回 XOPEN 类型还是 SQL:2003 类型。

- 特定于每个供应商的整数错误代码。通常,这将是底层数据库返回的实际错误代码。

- 到下一个 Exception 的链接。可以使用此链接提供其他错误信息。

-因果关系,如果存在任何导致此 SQLException 的原因。

直接已知子类包括:

- BatchUpdateException

- RowSetWarning

- SerialException

- SQLClientInfoException

- SQLNonTransientException

- SQLRecoverableException

- SQLTransientException

- SQLWarning

- SyncFactoryException

- SyncProviderException

TimeoutException

java.util.concurrent

超时异常。阻塞操作超时时,抛出该异常。对于指定超时的阻塞操作来说,需要一种指示发生超时的方法。多数这样的操作可能返回一个值指示超时;当不可能或不需要返回超时值时,将声明并抛出 TimeoutException。

TooManyListenersException

java.util

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

通常在多播 "void addXyzEventListener" 事件侦听器注册模式的任何给定具体实现上都有 "throws TooManyListenersException" 子句,它在实现单播侦听器的特例时用于注释该接口,也就是说,有一个且只有一个侦听器可在特定的事件侦听器源上同时注册。

TransformerException

javax.xml.transform

转换异常。此类指定了转换过程中发生的异常条件。

直接已知子类包括:

TransformerConfigurationException

TransformException

javax.xml.crypto.dsig

转换异常。指示执行转换算法时出现异常的异常条件。

TransformException 可以包含一个原因:另一个导致抛出此 TransformException 的 throwable。

UnmodifiableClassException

java.lang.instrument

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

UnsupportedAudioFileException

javax.sound.sampled

不支持音频文件异常。UnsupportedAudioFileException 是指示因为文件没有包含可识别文件类型和格式的有效数据而致使操作失败的异常。

UnsupportedCallbackException

javax.security.auth.callback

不支持回调异常。在 CallbackHandler 不能识别特定的 Callback 时发出的信号。

UnsupportedFlavorException

java.awt.datatransfer

不支持Flavor异常。在此 flavor 中不支持所请求的数据的信号。

UnsupportedLookAndFeelException

javax.swing

不支持外观异常。指示在用户系统上不存在请求的外观管理类的异常。

URIReferenceException

javax.xml.crypto

统一资源标识符引用异常。指示取消引用 URIReference 时抛出的异常条件。

URIReferenceException 可以包含一个 原因:另一个导致抛出此 URIReferenceException 的 throwable。

URISyntaxException

java.net

统一资源标识符语法异常。抛出经过检查的指示字符串不能解析为 URI 引用的异常。

UserException

org.omg.CORBA

用户异常。CORBA IDL 定义的用户异常的根类。所有 CORBA 用户异常都是经过检查的异常,这意味着它们需要在方法签名中被声明。

直接已知子类包括:

- AdapterAlreadyExists

- AdapterInactive

- AdapterNonExistent

- AlreadyBound

- BadKind

- Bounds

- Bounds

- CannotProceed

- DuplicateName

- FormatMismatch

- ForwardRequest

- ForwardRequest

- InconsistentTypeCode

- InconsistentTypeCode

- Invalid

- InvalidAddress

- InvalidName

- InvalidName

- InvalidName

- InvalidPolicy

- InvalidSeq

- InvalidSlot

- InvalidTypeForEncoding

- InvalidValue

- InvalidValue

- NoContext

- NoServant

- NotEmpty

- NotFound

- ObjectAlreadyActive

- ObjectNotActive

- PolicyError

- ServantAlreadyActive

- ServantNotActive

- TypeMismatch

- TypeMismatch

- TypeMismatch

- UnknownEncoding

- UnknownUserException

- WrongAdapter

- WrongPolicy

- WrongTransaction

XAException

javax.transaction.xa

XA异常。资源管理器 (RM) 抛出 XAException,以通知事务管理器涉及的事务遇到错误。

XMLParseException

javax.management.modelmbean

XML解析异常。当将某个 XML 格式的字符串解析为 ModelMBean 对象,或从 ModelMBean 对象创建 XML 格式的字符串时,抛出此异常。 它还用于来自可能被使用的 XML 解析器的包装器异常。

XMLSignatureException

javax.xml.crypto.dsig

XML签名异常。指示生成或验证 XML 签名过程中发生的异常条件。

XMLSignatureException 可以包含一个原因:另一个导致抛出此 XMLSignatureException 的 throwable。

XMLStreamException

javax.xml.stream

XML流异常。用于不可预料处理错误的基本异常。此异常类用于报告格式良好的错误以及不可预料的处理条件。

XPathException

javax.xml.xpath

XML路径语言异常。XPathException 表示通用 XPath 异常。

直接已知子类包括:

- XpathExpressionException

- XPathFactoryConfigurationException

以上内容是笔者结合API,简单整理的Java常见异常类,挂一漏万,如有遗漏,欢迎大家指正。

转载请注明出处。

 

你可能感兴趣的:(JAVA)