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
|
---
title: RangeError
slug: Web/JavaScript/Reference/Global_Objects/RangeError
tags:
- Error
- JavaScript
- Object
- RangeError
translation_of: Web/JavaScript/Reference/Global_Objects/RangeError
---
<div>{{JSRef}}</div>
<p><code><strong>RangeError</strong></code>物件在一個給定的值不在允許的集合或範圍內時被作為一個錯誤拋出</p>
<h2 id="語法">語法</h2>
<pre class="syntaxbox"><code>new RangeError([<var>message</var>[, <var>fileName</var>[, <var>lineNumber</var>]]])</code></pre>
<h3 id="參數">參數</h3>
<dl>
<dt><code>message</code></dt>
<dd>可選。具人類可讀性的錯誤說明</dd>
<dt><code>fileName</code> {{non-standard_inline}}</dt>
<dd>可選。包含造成錯誤發生的程式碼的檔案名稱</dd>
<dt><code>lineNumber</code> {{non-standard_inline}}</dt>
<dd>可選。造成錯誤發生的程式碼行號</dd>
</dl>
<h2 id="說明">說明</h2>
<p>當試著往一個 function 傳入一個不被其允許的值作為參數時,一個<code>RangeError</code>被拋出。這可在多種情況遭遇到,例如傳入一個不被允許的字串值到 {{jsxref("String.prototype.normalize()")}},或試著透過 {{jsxref("Array")}} constructor 用一個不合法的長度來創建一個陣列,或往數值方法像是{{jsxref("Number.toExponential()")}}、{{jsxref("Number.toFixed()")}}、{{jsxref("Number.toPrecision()")}} 傳進糟糕的值。</p>
<h2 id="屬性">屬性</h2>
<dl>
<dt>{{jsxref("RangeError.prototype")}}</dt>
<dd>允許對一個 <code>RangeError</code> 物件增加其屬性。</dd>
</dl>
<h2 id="方法">方法</h2>
<p>普遍的 <code>RangeError</code> 自身沒有包含方法,儘管他的確從原型鍊中繼承了一些。</p>
<h2 id="RangeError_物件實體"><code>RangeError</code> 物件實體</h2>
<h3 id="屬性_2">屬性</h3>
<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError/prototype', 'Properties')}}</div>
<h3 id="方法_2">方法</h3>
<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError/prototype', 'Methods')}}</div>
<h2 id="範例">範例</h2>
<h3 id="使用_RangeError_(數值)">使用 <code>RangeError</code> (數值)</h3>
<pre class="brush: js">function check(n)
{
if(!(n >= -500 && n <= 500))
{
throw new RangeError("The argument must be between -500 and 500.");
}
}
try
{
check(2000);
}
catch(error)
{
if(error instanceof RangeError)
{
// Handle the error.
}
}</pre>
<h3 id="使用_RangeError_(非數值)">使用 <code>RangeError</code> (非數值)</h3>
<pre class="brush: js">function check(value)
{
if(["apple", "banana", "carrot"].includes(value) === false)
{
throw new RangeError("The argument must be an \"apple\", \"banana\", or \"carrot\".");
}
}
try
{
check("cabbage");
}
catch(error)
{
if(error instanceof RangeError)
{
// Handle the error.
}
}
</pre>
<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('ES3')}}</td>
<td>{{Spec2('ES3')}}</td>
<td>Initial definition.</td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-15.11.6.2', 'RangeError')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-native-error-types-used-in-this-standard-rangeerror', 'RangeError')}}</td>
<td>{{Spec2('ES6')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#sec-native-error-types-used-in-this-standard-rangeerror', 'RangeError')}}</td>
<td>{{Spec2('ESDraft')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="瀏覽器相容性">瀏覽器相容性</h2>
<div>
<p>{{Compat("javascript.builtins.RangeError")}}</p>
</div>
<h2 id="另見">另見</h2>
<ul>
<li>{{jsxref("Error")}}</li>
<li>{{jsxref("RangeError.prototype")}}</li>
<li>{{jsxref("Array")}}</li>
<li>{{jsxref("Number.toExponential()")}}</li>
<li>{{jsxref("Number.toFixed()")}}</li>
<li>{{jsxref("Number.toPrecision()")}}</li>
<li>{{jsxref("String.prototype.normalize()")}}</li>
</ul>
|