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>

執行上面示例代碼,得到以下結果 -

DOM