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@xuhuhu.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>
执行上面示例代码,得到以下结果 -

						上一篇:
								DOM XMLHttpRequest对象
												下一篇:无
												
						
						
					
					
					