DOM DOMException對象
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>[email protected]</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>
執行上面示例代碼,得到以下結果 -