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>

執行上面範例程式碼,得到以下結果 -