1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
---
title: DOMException
slug: Web/API/DOMException
translation_of: Web/API/DOMException
---
<p>{{ APIRef("DOM") }}</p>
<p><span class="seoSummary"> <code><strong>DOMException</strong></code> 接口代表调用方法或访问 Web API 属性时发生的异常事件(被称为<strong>异常</strong>,<strong>exception</strong>)。</span> 这基本上是在 Web API 中如何描述错误情况的</p>
<p>每个异常都有一个名称 <strong>name,</strong>一个采用骆驼式命名法的简短字符串,用于描述识别错误或异常情况。</p>
<div class="standardNoteBlock">
<p><strong>译者注:</strong>骆驼式命名法(CamelCase style),又称驼峰命名法。与 JavaScript 中更常见的小驼峰命名法有别,此处应是指大驼峰命名法。大驼峰命名法又称 Pascal 命名法。具体为名称中的每个单词<strong>仅首字母大写</strong>(<strong>Capitalize</strong>),可参考下方错误名称。</p>
</div>
<h2 id="构造函数">构造函数</h2>
<dl>
<dt>{{domxref("DOMException.DOMException()", "DOMException()")}} {{experimental_inline}}</dt>
<dd>返回一个包含指定消息和名称的 <code>DOMException</code> 对象。</dd>
</dl>
<h2 id="属性">属性</h2>
<dl>
<dt>{{domxref("DOMException.code")}} {{deprecated_inline}} {{readOnlyInline}}</dt>
<dd>返回一个 <code>short</code>,包含错误代码常量中的一个,或者返回 <code>0</code>,如果没有匹配的话。这个字段由于历史原因被使用。现在不再使用这个新的DOM异常:他们把这个信息放入 {{domxref("DOMException.name")}} 属性。</dd>
<dt>{{domxref("DOMException.message")}} {{readOnlyInline}}</dt>
<dd>返回一个 {{ domxref("DOMString") }} 代表与给定的<a href="/en-US/docs/Web/API/DOMException#Error_names">错误名称</a>有关信息或描述。</dd>
<dt>{{domxref("DOMException.name")}} {{readOnlyInline}}</dt>
<dd>返回一个 {{domxref("DOMString")}} 包含与<a href="#Error_names">错误名称</a>相关的字符串.</dd>
</dl>
<h2 id="错误名称">错误名称</h2>
<p>常见的错误名称列在这里。一些 API 定义了它们自己的名称组,所以这未必是一个完整的列表。</p>
<div class="note">
<p><strong>注意:</strong>因为很久以前错误是由数值(code value,代码值)与一个对应的命名变量定义的,所以以下部分条目包含过去使用的遗留代码值和常量名。</p>
</div>
<dl>
<dt><a id="exception-IndexSizeError"><code>IndexSizeError</code></a></dt>
<dd>索引不在允许的范围内。例如,这可以被 {{ domxref("Range") }} 对象抛出。(遗留代码值:<code>1</code>,遗留常数名称:<code>INDEX_SIZE_ERR</code>)</dd>
<dt><code><a id="exception-HierarchyRequestError">HierarchyRequestError</a></code></dt>
<dd>节点树层次结构有误。(遗留代码值: <code>3</code> ,遗留常数名称:<code>HIERARCHY_REQUEST_ERR</code>)</dd>
<dt><a id="exception-WrongDocumentError"><code>WrongDocumentError</code></a></dt>
<dd>对象在错误的 {{ domxref("Document") }}中。(遗留代码值: <code>4</code>,遗留常数名称: <code>WRONG_DOCUMENT_ERR</code>)</dd>
<dt><a id="exception-InvalidCharacterError"><code>InvalidCharacterError</code></a></dt>
<dd>字符串包含无效字符。(Legacy code value: <code>5</code> and legacy constant name: <code>INVALID_CHARACTER_ERR</code>)</dd>
<dt><a id="exception-NoModificationAllowedError"><code>NoModificationAllowedError</code></a></dt>
<dd>对象不能被修改。(Legacy code value: <code>7</code> and legacy constant name: <code>NO_MODIFICATION_ALLOWED_ERR</code>)</dd>
<dt><a id="exception-NotFoundError"><code>NotFoundError</code></a></dt>
<dd>找不到对象。(Legacy code value: <code>8</code> and legacy constant name: <code>NOT_FOUND_ERR</code>)</dd>
<dt><a id="exception-NotFoundError"><code>NotSupportedError</code></a></dt>
<dd>不支持的操作。 (Legacy code value: <code>9</code> and legacy constant name: <code>NOT_SUPPORTED_ERR</code>)</dd>
<dt><a id="exception-InvalidStateError"><code>InvalidStateError</code></a></dt>
<dd>对象是一个无效的状态. (Legacy code value: <code>11</code> and legacy constant name: <code>INVALID_STATE_ERR</code>)</dd>
<dt><a id="exception-SyntaxError"><code>SyntaxError</code></a></dt>
<dd>字符串不匹配预期的模式. (Legacy code value: <code>12</code> and legacy constant name: <code>SYNTAX_ERR</code>)</dd>
<dt><a id="exception-InvalidModificationError"><code>InvalidModificationError</code></a></dt>
<dd>对象不能被这种方式修改。 (Legacy code value: <code>13</code> and legacy constant name: <code>INVALID_MODIFICATION_ERR</code>)</dd>
<dt><a id="exception-NamespaceError"><code>NamespaceError</code></a></dt>
<dd>操作在XML名称空间是不允许的. (Legacy code value: <code>14</code> and legacy constant name: <code>NAMESPACE_ERR</code>)</dd>
<dt><a id="exception-InvalidAccessError"><code>InvalidAccessError</code></a></dt>
<dd>对象不支持此操作或参数 (Legacy code value: <code>15</code> and legacy constant name: <code>INVALID_ACCESS_ERR</code>)</dd>
<dt><a id="exception-TypeMismatchError"><code>TypeMismatchError</code></a> {{deprecated_inline}}</dt>
<dd>对象的类型不匹配预期的类型. (Legacy code value: <code>17</code> and legacy constant name: <code>TYPE_MISMATCH_ERR</code>) 这个值已被弃用, JavaScript {{jsxref("TypeError")}} 异常被提出而不是<code>DOMException</code></dd>
<dt><a id="exception-SecurityError"><code>SecurityError</code></a> {{experimental_inline}}</dt>
<dd>操作不安全。 (Legacy code value: <code>18</code> and legacy constant name: <code>SECURITY_ERR</code>)</dd>
<dt><a id="exception-NetworkError"><code>NetworkError</code></a> {{experimental_inline}}</dt>
<dd>网络错误发生. (Legacy code value: <code>19</code> and legacy constant name: <code>NETWORK_ER</code><code>R</code>)</dd>
<dt><a id="exception-AbortError"><code>AbortError</code></a> {{experimental_inline}}</dt>
<dd>T操作中止. (Legacy code value: <code>20</code> and legacy constant name: <code>ABORT_ERR</code>)</dd>
<dt><a id="exception-URLMismatchError"><code>URLMismatchError</code></a> {{experimental_inline}}</dt>
<dd>给定的URL不匹配另一个URL。 (Legacy code value: <code>21</code> and legacy constant name: <code>URL_MISMATCH_ERR</code>)</dd>
<dt><a id="exception-QuotaExceededError"><code>QuotaExceededError</code></a> {{experimental_inline}}</dt>
<dd>给定配额已经超过了(Legacy code value: <code>22</code> and legacy constant name: <code>QUOTA_EXCEEDED_ERR</code>)</dd>
<dt><a id="exception-TimeoutError"><code>TimeoutError</code></a> {{experimental_inline}}</dt>
<dd>操作超时. (Legacy code value: <code>23</code> and legacy constant name: <code>TIMEOUT_ERR</code>)</dd>
<dt><a id="exception-InvalidNodeTypeError"><code>InvalidNodeTypeError</code></a> {{experimental_inline}}</dt>
<dd>这个操作的节点是不正确的或祖先是不正确的. (Legacy code value: <code>24</code> and legacy constant name: <code>INVALID_NODE_TYPE_ERR</code>)</dd>
<dt><a id="exception-DataCloneError"><code>sDataCloneError</code></a> {{experimental_inline}}</dt>
<dd>对象不可被克隆。 (Legacy code value: <code>25</code> and legacy constant name: <code>DATA_CLONE_ERR</code>)</dd>
<dt><a id="exception-EncodingError"><code>EncodingError</code></a> {{experimental_inline}}</dt>
<dd>编码或解码操作失败 (没有遗留代码值和常量的名字).</dd>
<dt><a id="exception-NotReadableError"><code>NotReadableError</code></a> {{experimental_inline}}</dt>
<dd>输入/输出读操作失败(没有遗留代码值和常量的名字).</dd>
<dt><a id="exception-UnknownError"><code>UnknownError</code></a> {{experimental_inline}}</dt>
<dd>因未知的瞬态的原因使操作失败(例如 内存不足) (No legacy code value and constant name).</dd>
<dt><a id="exception-ConstraintError"><code>ConstraintError</code></a> {{experimental_inline}}</dt>
<dd>条件没满足而导致事件失败的异常操作 (No legacy code value and constant name).</dd>
<dt><a id="exception-DataError"><code>DataError</code></a> {{experimental_inline}}</dt>
<dd>提供的数据不足 (No legacy code value and constant name).</dd>
<dt><a id="exception-TransactionInactiveError"><code>TransactionInactiveError</code></a> {{experimental_inline}}</dt>
<dd>请求被当前不活跃的事件或已完成事件阻止 (No legacy code value and constant name)。</dd>
<dt><a id="exception-ReadOnlyError"><code>ReadOnlyError</code></a> {{experimental_inline}}</dt>
<dd>尝试操作 "readonly" 事件 (No legacy code value and constant name)。</dd>
<dt><a id="exception-VersionError"><code>VersionError</code></a> {{experimental_inline}}</dt>
<dd>尝试打开一个比现有版本更低的数据库(No legacy code value and constant name)。</dd>
<dt><a id="exception-OperationError"><code>OperationError</code></a> {{experimental_inline}}</dt>
<dd>因特定操作失败原因而失败 (No legacy code value and constant name).</dd>
<dt><a id="exception-NotAllowedError"><code>NotAllowedError</code></a> {{experimental_inline}}</dt>
<dd><dd请求不被用户代理或当前上下文所在平台允许,可能因为用户拒绝授权 (no="" and="" code="" constant="" dd="" legacy="" name)。<="" value=""> </dd请求不被用户代理或当前上下文所在平台允许,可能因为用户拒绝授权></dd>
</dl>
<h2 id="规范">规范</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">规范</th>
<th scope="col">状态</th>
<th scope="col">备注</th>
</tr>
<tr>
<td>{{SpecName('WebIDL', '#idl-DOMException', 'constructor')}}</td>
<td>{{Spec2('WebIDL')}}</td>
<td>Adds the constructor for the <code>DOMException</code> class. Adds the <code>NotReadableError</code>, <code>UnknownError</code>, <code>ConstraintError</code>, <code>DataError</code>, <code>TransactionInactiveError</code>, <code>ReadOnlyError</code>, <code>VersionError</code>, <code>OperationError</code>, and <code>NotAllowedError</code> values.</td>
</tr>
<tr>
<td>{{SpecName('DOM4', '#exception-domexception', 'DOMException')}}</td>
<td>{{Spec2('DOM4')}}</td>
<td>Added <code>SECURITY_ERR</code>, <code>NETWORK_ERR</code>, <code>ABORT_ERR</code>, <code>URL_MISMATCH_ERR</code>, <code>QUOTA_EXCEEDED_ERR</code>, <code>TIMEOUT_ERR</code>, <code>INVALID_NODE_TYPE_ERR</code>, and <code>DATA_CLONE_ERR</code>. The property <code>code</code> has been deprecated for exception values. The <code>EncodingError</code> value added.</td>
</tr>
<tr>
<td>{{SpecName('DOM3 Core', 'core.html#ID-17189187', 'DOMException')}}</td>
<td>{{Spec2('DOM3 Core')}}</td>
<td>Added of <code>VALIDATION_ERR</code> and <code>TYPE_MISMATCH_ERR</code>.</td>
</tr>
<tr>
<td>{{SpecName('DOM2 Core', 'core.html#ID-17189187', 'DOMException')}}</td>
<td>{{Spec2('DOM2 Core')}}</td>
<td>Added of <code>INVALID_STATE_ERR</code>, <code>SYNTAX_ERR</code>, <code>INVALID_MODIFICATION_ERR</code>, <code>NAMESPACE_ERR</code>, and <code>INVALID_ACCESS_ERR</code>.</td>
</tr>
<tr>
<td>{{SpecName('DOM1', 'level-one-core.html#ID-17189187', 'DOMException')}}</td>
<td>{{Spec2('DOM1')}}</td>
<td>Initial definition.</td>
</tr>
</tbody>
</table>
<h2 id="浏览器兼容性">浏览器兼容性</h2>
<p>{{Compat("api.DOMException")}}</p>
<h2 id="参见">参见</h2>
<ul>
<li>{{ domxref("DOMError") }}</li>
</ul>
|