DOMException - 表示由于调用方法或访问 Web API 的属性而发生的异常事件
DOMException 接口表示由于调用方法或访问 Web API 的属性而发生的异常事件(称为 exception)。这是 Web API 中描述错误条件的基础方式。
每个异常都有一个名称,它是一个简短的 “驼峰” 样式字符串,用于标识错误或异常情况。
构造函数
DOMException()
返回带有指定消息和名称的 DOMException 对象。
属性
DOMException.code 只读
返回一个 short,是错误代码常量之中的一个。如果没有匹配则返回 0。该字段用于旧版原因。新的 DOM 异常不再使用它:它们将该信息放在 DOMException.name 属性中。
DOMException.message 只读
返回一个 DOMString,表示与给定错误名称相关联的消息或描述。
DOMException.name 只读
返回一个 DOMString,其中包含错误名称关联中的字符串。
错误名称
这里列出了常见错误名称。有些 API 定义了自己的名称集,因此这不一定是完整的列表。
注意:因为旧版上错误是由一个数值标识的,该数值与定义为具有该值的命名变量相对应,所以下面的一些条目表示过去使用的旧版代码值和常量名称。
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
用户代理或平台在当前上下文中不允许该请求,可能是因为用户拒绝了权限(没有旧版代码值和常量名称)。
规范
| 规范 | 状态 | 备注 |
|---|---|---|
| Web IDL constructor 的定义 |
候选推荐 | 增加了 DOMException 类的构造函数。增加了 NotReadableError,UnknownError,ConstraintError,DataError,TransactionInactiveError,ReadOnlyError,VersionError,OperationError 和 NotAllowedError 值。 |
| DOM4 DOMException 的定义 |
已过时 | 增加了 SECURITY_ERR,NETWORK_ERR,ABORT_ERR,URL_MISMATCH_ERR,QUOTA_EXCEEDED_ERR,TIMEOUT_ERR,INVALID_NODE_TYPE_ERR 和 DATA_CLONE_ERR。因为有了异常值,所以废弃了 code 属性。增加了 code 值。 |
| Document Object Model (DOM) Level 3 Core Specification DOMException 的定义 |
已过时 | 增加了 VALIDATION_ERR 和 TYPE_MISMATCH_ERR。 |
| Document Object Model (DOM) Level 2 Core Specification DOMException 的定义 |
已过时 | 增加了 INVALID_STATE_ERR,SYNTAX_ERR,INVALID_MODIFICATION_ERR,NAMESPACE_ERR 和 INVALID_ACCESS_ERR。 |
| Document Object Model (DOM) Level 1 Specification DOMException 的定义 |
已过时 | 初始定义。 |
桌面浏览器兼容性
| 特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| 基础支持 | 支持 | 支持 | 1 | 未知 | 未知 | 未知 |
DOMException() constructor |
不支持 | 不支持 | 未知 | 未知 | 未知 | 未知 |
code |
支持 | 支持 | 1 | 未知 | 未知 | 未知 |
message |
支持 | 支持 | 1 | 未知 | 未知 | 未知 |
name |
支持 | 支持 | 1 | 未知 | 未知 | 未知 |
移动浏览器兼容性
| 特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
|---|---|---|---|---|---|---|---|
| 基础支持 | 支持 | 支持 | 支持 | 4 | 未知 | 未知 | 未知 |
DOMException() constructor |
不支持 | 不支持 | 不支持 | 未知 | 未知 | 未知 | 未知 |
code |
支持 | 支持 | 支持 | 4 | 未知 | 未知 | 未知 |
message |
支持 | 支持 | 支持 | 4 | 未知 | 未知 | 未知 |
name |
支持 | 支持 | 支持 | 4 | 未知 | 未知 | 未知 |