DOM DOMException对象
精华
小牛编辑
111浏览
2023-03-14
DOMException
表示使用方法或属性时发生的异常事件。
1. 属性
下表列出了DOMException
对象的属性 -
序号 | 属性 | 描述 |
---|---|---|
1 | name |
返回一个DOMString ,其中包含与错误常量关联的字符串之一(如下表所示)。 |
2. 错误类型
序号 | 类型 | 描述 |
---|---|---|
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 |
输入/输出读取操作失败(没有遗留代码值和常量名称)。 |
3. 示例
下面的示例演示了如何使用格式不正确的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>Exception</first>
<LastName>Su</LastName>
<ContactNo>08981234567890</ContactNo>
<Email>exception@yiibai.com</Email>
</Employee>
</Company>
以下示例演示了Error.name
属性的用法 -
<!DOCTYPE html>
<html>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<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("/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>
执行上面示例代码,得到以下结果 -