DOM - DOMException 对象
DOMException 表示使用方法或属性时发生的异常事件。
属性
下表列出了 DOMException 对象的属性
| S.No. | 属性 &描述 |
|---|---|
| 1 | name 返回一个 DOMString,其中包含与错误常量关联的字符串之一(如下表所示)。 |
错误类型
| S.No. | 类型和描述 |
|---|---|
| 1 | IndexSizeError 索引不在允许的范围内。例如,Range 对象可能会抛出此错误。 (旧代码值:1 和旧常量名称:INDEX_SIZE_ERR) |
| 2 | HierarchyRequestError 节点树层次结构不正确。 (旧代码值:3 和旧常量名称:HIERARCHY_REQUEST_ERR) |
| 3 | WrongDocumentError 对象位于错误的文档中。 (旧代码值:4 和旧常量名称:WRONG_DOCUMENT_ERR) |
| 4 | InvalidCharacterError 字符串包含无效字符。 (旧代码值:5 和旧常量名称:INVALID_CHARACTER_ERR) |
| 5 | NoModificationAllowedError 无法修改对象。 (旧代码值:7 和旧常量名称:NO_MODIFICATION_ALLOWED_ERR) |
| 6 | NotFoundError 此处找不到对象。 (旧代码值:8 和旧常量名称:NOT_FOUND_ERR) |
| 7 | NotSupportedError 不支持该操作。 (旧代码值:9 和旧常量名称:NOT_SUPPORTED_ERR) |
| 8 | InvalidStateError 对象处于无效状态。 (旧代码值:11 和旧常量名称:INVALID_STATE_ERR) |
| 9 | SyntaxError 字符串与预期模式不匹配。 (旧代码值:12 和旧常量名称:SYNTAX_ERR) |
| 10 | InvalidModificationError 无法通过这种方式修改对象。(旧代码值:13 和旧常量名称:INVALID_MODIFICATION_ERR) |
| 11 | NamespaceError XML 中的命名空间不允许此操作。(旧代码值:14 和旧常量名称:NAMESPACE_ERR) |
| 12 | InvalidAccessError 对象不支持此操作或参数。 (旧代码值:15 和旧常量名称:INVALID_ACCESS_ERR) |
| 13 | TypeMismatchError 对象的类型与预期类型不匹配。 (旧代码值:17 和旧常量名称:TYPE_MISMATCH_ERR)此值已弃用,现在会引发 JavaScript TypeError 异常,而不是使用此值的 DOMException。 |
| 14 | SecurityError 操作不安全。 (旧代码值:18 和旧常量名称:SECURITY_ERR) |
| 15 | NetworkError 发生网络错误。 (旧代码值:19 和旧常量名称:NETWORK_ERR) |
| 16 | AbortError 操作已中止。 (旧代码值:20 和旧常量名称:ABORT_ERR) |
| 17 | URLMismatchError 给定的 URL 与其他 URL 不匹配。 (旧代码值:21 和旧常量名称:URL_MISMATCH_ERR) |
| 18 | QuotaExceededError 已超出配额。 (旧代码值:22 和旧常量名称:QUOTA_EXCEEDED_ERR) |
| 19 | TimeoutError 操作超时。 (旧代码值:23 和旧常量名称:TIMEOUT_ERR) |
| 20 | InvalidNodeTypeError 节点不正确或具有不正确的祖先。 (旧代码值:24 和旧常量名称:INVALID_NODE_TYPE_ERR) |
| 21 | DataCloneError 无法克隆对象。(旧代码值:25 和旧常量名称:DATA_CLONE_ERR) |
| 22 | EncodingError 编码操作(无论是编码还是解码)失败(没有遗留代码值和常量名称)。 |
| 23 | NotReadableError 输入/输出读取操作失败(没有遗留代码值和常量名称)。 |
示例
以下示例演示了如何使用格式不正确的 XML 文档导致 DOMException。
error.xml 内容如下 −
<?xml version = "1.0" encoding = "UTF-8" standalone = "no" ?>
<Company id = "companyid">
<Employee category = "Technical" id = "firstelement" type = "text/html">
<FirstName>Tanmay</first>
<LastName>Patil</LastName>
<ContactNo>1234567890</ContactNo>
<Email>tanmaypatil@xyz.com</Email>
</Employee>
</Company>
以下示例演示了 name 属性的用法 −
<html>
<head>
<script>
function loadXMLDoc(filename) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else // code for IE5 and IE6 {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}
</script>
</head>
<body>
<script>
try {
xmlDoc = loadXMLDoc("/dom/error.xml");
var node = xmlDoc.getElementsByTagName("to").item(0);
var refnode = node.nextSibling;
var newnode = xmlDoc.createTextNode('That is why you fail.');
node.insertBefore(newnode, refnode);
} catch(err) {
document.write(err.name);
}
</script>
</body>
</html>
执行
将此文件保存为服务器路径上的 domexcption_name.html(此文件和 error.xml 应位于服务器中的同一路径)。我们将获得如下所示的输出 −
TypeError

