DOM - DOMException 物件



DOMException 表示在使用方法或屬性時發生的異常事件。

屬性

下表列出了 DOMException 物件的屬性

序號 屬性及描述
1

name

返回一個 DOMString,其中包含與錯誤常量關聯的字串之一(如下表所示)。

錯誤型別

序號 型別及描述
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
廣告