DOMException
============

**`DOMException`** 接口代表调用方法或访问 Web API 属性时发生的不正常事件（被称为**异常**，**exception**）。这就是 Web API 中描述错误条件的方式。

每个异常都有一个**名称**（name），一个采用驼峰命名法的简短字符串，用于描述识别错误或异常情况。

`DOMException` 是一个可序列化对象，因此可以使用 `structuredClone()` 克隆，或使用 `postMessage()` 在 Worker 之间复制。

构造函数
----

`DOMException()`

返回一个包含指定消息和名称的 `DOMException` 对象。

实例属性
----

`DOMException.code` 
已弃用
 只读 

返回任意一个遗留错误代码常量，如果不匹配则返回 `0`。

`DOMException.message` 只读 

返回一个字符串，代表与给定的错误名称有关的信息或描述。

`DOMException.name` 只读 

返回一个字符串，包含与错误名称相关的字符串。

错误名称
----

常见的错误名称列在这里。一些 API 定义了它们自己的名称组，所以这未必是一个完整的列表。

请注意，以下已废弃的历史错误没有错误名称，而只有遗留常量代码值和遗留常量名称：

* 遗留代码值：`2`，遗留常量名称：`DOMSTRING_SIZE_ERR`
* 遗留代码值：`6`，遗留常量名称：`NO_DATA_ALLOWED_ERR`
* 遗留代码值：`16`，遗留常量名称：`VALIDATION_ERR`

**备注：** 由于历史上错误是通过一个数值来识别的，该数值与定义为该数值的命名变量相对应，因此下面的一些条目指出了过去使用的历史代码值和常量名称。

`IndexSizeError`

索引不在允许的范围内。例如，这可以被 `Range` 对象抛出。（遗留代码值：`1`，遗留常量名称：`INDEX_SIZE_ERR`）

`HierarchyRequestError`

节点树层次结构有误。（遗留代码值：`3`，遗留常量名称：`HIERARCHY_REQUEST_ERR`）

`WrongDocumentError`

对象在错误的 `Document` 中。（遗留代码值：`4`，遗留常量名称：`WRONG_DOCUMENT_ERR`）

`InvalidCharacterError`

字符串包含无效字符。（遗留代码值：`5`，遗留常量名称：`INVALID_CHARACTER_ERR`）

`NoModificationAllowedError`

对象不能被修改。（遗留代码值：`7`，遗留常量名称：`NO_MODIFICATION_ALLOWED_ERR`）

`NotFoundError`

找不到对象。（遗留代码值：`8`，遗留常量名称：`NOT_FOUND_ERR`）

`NotSupportedError`

不支持的操作。（遗留代码值：`9`，遗留常量名称：`NOT_SUPPORTED_ERR`）

`InvalidStateError`

对象是一个无效的状态。（遗留代码值：`11`，遗留常量名称：`INVALID_STATE_ERR`）

`SyntaxError`

字符串不匹配预期的模式。（遗留代码值：`12`，遗留常量名称：`SYNTAX_ERR`）

`InvalidModificationError`

对象不能被这种方式修改。（遗留代码值：`13`，遗留常量名称：`INVALID_MODIFICATION_ERR`）

`NamespaceError`

操作在 XML 名称空间是不允许的。（遗留代码值：`14`，遗留常量名称：`NAMESPACE_ERR`）

`InvalidAccessError`

对象不支持此操作或参数。（遗留代码值：`15`，遗留常量名称：`INVALID_ACCESS_ERR`）

`TypeMismatchError` 
已弃用

对象的类型不匹配预期的类型。（遗留代码值：`17`，遗留常量名称：`TYPE_MISMATCH_ERR`）。这个值已被弃用，现在会抛出 JavaScript `TypeError` 异常而不是含有该值的 `DOMException`。

`SecurityError` 
实验性

操作不安全。（遗留代码值：`18`，遗留常量名称：`SECURITY_ERR`）

`NetworkError` 
实验性

网络错误发生。（遗留代码值：`19`，遗留常量名称：`NETWORK_ERR`）

`AbortError` 
实验性

操作中止。（遗留代码值：`20`，遗留常量名称：`ABORT_ERR`）

`URLMismatchError` 
实验性

给定的 URL 不匹配另一个 URL。（遗留代码值：`21`，遗留常量名称：`URL_MISMATCH_ERR`）

`QuotaExceededError` 
实验性

超出给定配额。（遗留代码值：`22`，遗留常量名称：`QUOTA_EXCEEDED_ERR`）

`TimeoutError` 
实验性

操作超时。（遗留代码值：`23`，遗留常量名称：`TIMEOUT_ERR`）

`InvalidNodeTypeError` 
实验性

这个操作的节点是不正确的或祖先是不正确的。（遗留代码值：`24`，遗留常量名称：`INVALID_NODE_TYPE_ERR`）

`DataCloneError` 
实验性

对象不可被克隆。（遗留代码值：`25`，遗留常量名称：`DATA_CLONE_ERR`）

`EncodingError` 
实验性

编码或解码操作失败（没有遗留代码值和常量的名字）。

`NotReadableError` 
实验性

输入/输出读操作失败（没有遗留代码值和常量的名字）。

`UnknownError` 
实验性

因未知的瞬态的原因使操作失败（例如内存不足）（没有遗留代码值和常量的名字）。

`ConstraintError` 
实验性

条件没满足而导致事件失败的异常操作（没有遗留代码值和常量的名字）。

`DataError` 
实验性

提供的数据不足（没有遗留代码值和常量的名字）。

`TransactionInactiveError` 
实验性

请求被当前不活跃的事件或已完成事件阻止（没有遗留代码值和常量的名字）。

`ReadOnlyError` 
实验性

尝试操作“只读”事件（没有遗留代码值和常量的名字）。

`VersionError` 
实验性

尝试打开一个比现有版本更低的数据库（没有遗留代码值和常量的名字）。

`OperationError` 
实验性

因特定操作失败原因而失败（没有遗留代码值和常量的名字）。

`NotAllowedError` 
实验性

当前上下文中的用户代理或平台不允许该请求，可能是因为用户拒绝了授权（没有遗留代码值和常量的名字）。

规范
--

| Specification |
| --- |
| Web IDL Standard # idl-DOMException |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参见
--

* `DOMError`