DOMException 表示使用方法或属性时发生的异常事件.
下面table列出了DOMException对象的属性
S.No. | Property&描述 |
---|---|
1 | name 返回一个DOMString,其中包含一个与错误常量相关联的字符串(如下表所示). |
S.No. | Type&描述 |
---|---|
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 给定的网址与其他网址不匹配. (旧版代码值: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 (此file和error.xml应该在服务器的相同路径上).我们将得到如下所示的输出 :
TypeError