Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 1069722 of RangeError

  • Revision slug: Web/JavaScript/Reference/Global_Objects/RangeError
  • Revision title: RangeError
  • Revision id: 1069722
  • Created:
  • Creator: rtrust1
  • Is current revision? No
  • Comment

Revision Content

{{JSRef}}

The RangeError object indicates an error when a value is not in the set or range of allowed values.

Syntax

new RangeError([message[, fileName[, lineNumber]]])

Parameters

message
Optional. Human-readable description of the error
fileName {{non-standard_inline}}
Optional. The name of the file containing the code that caused the exception
lineNumber {{non-standard_inline}}
Optional. The line number of the code that caused the exception

Description

A RangeError is thrown when trying to pass a number as an argument to a function that does not allow a range that includes that number. This can be encountered when attempting to create an array of an illegal length with the {{jsxref("Array")}} constructor, or when passing bad values to the numeric methods {{jsxref("Number.toExponential()")}}, {{jsxref("Number.toFixed()")}} or {{jsxref("Number.toPrecision()")}}.

Properties

{{jsxref("RangeError.prototype")}}
Allows the addition of properties to an RangeError object.

Methods

The global RangeError contains no methods of its own, however, it does inherit some methods through the prototype chain.

RangeError instances

Properties

{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError/prototype', 'Properties')}}

Methods

{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError/prototype', 'Methods')}}

Examples

Using RangeError

RangeError

HTML Content

Check console

JavaScript Content

var min = 0, max = 400, check = function(num) { 
    if (num < min || num > max) { 
        throw new RangeError('Parameter must be between ' + min + ' and ' + max);
    }
}; 
try { 
  check(500); 
} catch (e) { 
  if (e instanceof RangeError) {
    // Handle range error
    throw e; 
  }
}
try {
  check(300);
} catch (e) {
  if (e instanceof RangeError) {
    throw e;
  }
}

{{ EmbedLiveSample('RangeErrorEx') }}

 

Specifications

Specification Status Comment
{{SpecName('ES3')}} {{Spec2('ES3')}} Initial definition.
{{SpecName('ES5.1', '#sec-15.11.6.2', 'RangeError')}} {{Spec2('ES5.1')}}  
{{SpecName('ES6', '#sec-native-error-types-used-in-this-standard-rangeerror', 'RangeError')}} {{Spec2('ES6')}}  
{{SpecName('ESDraft', '#sec-native-error-types-used-in-this-standard-rangeerror', 'RangeError')}} {{Spec2('ESDraft')}}  

Browser compatibility

{{CompatibilityTable}}
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}

See also

  • {{jsxref("Error")}}
  • {{jsxref("RangeError.prototype")}}
  • {{jsxref("Array")}}
  • {{jsxref("Number.toExponential()")}}
  • {{jsxref("Number.toFixed()")}}
  • {{jsxref("Number.toPrecision()")}}

Revision Source

<div>{{JSRef}}</div>

<p>The <code><strong>RangeError</strong></code> object indicates an error when a value is not in the set or range of allowed values.</p>

<h2 id="Syntax">Syntax</h2>

<pre class="syntaxbox">
<code>new RangeError([<var>message</var>[, <var>fileName</var>[, <var>lineNumber</var>]]])</code></pre>

<h3 id="Parameters">Parameters</h3>

<dl>
 <dt><code>message</code></dt>
 <dd>Optional. Human-readable description of the error</dd>
 <dt><code>fileName</code> {{non-standard_inline}}</dt>
 <dd>Optional. The name of the file containing the code that caused the exception</dd>
 <dt><code>lineNumber</code> {{non-standard_inline}}</dt>
 <dd>Optional. The line number of the code that caused the exception</dd>
</dl>

<h2 id="Description">Description</h2>

<p>A <code>RangeError</code> is thrown when trying to pass a number as an argument to a function that does not allow a range that includes that number. This can be encountered when attempting to create an array of an illegal length with the {{jsxref("Array")}} constructor, or when passing bad values to the numeric methods {{jsxref("Number.toExponential()")}}, {{jsxref("Number.toFixed()")}} or {{jsxref("Number.toPrecision()")}}.</p>

<h2 id="Properties">Properties</h2>

<dl>
 <dt>{{jsxref("RangeError.prototype")}}</dt>
 <dd>Allows the addition of properties to an <code>RangeError</code> object.</dd>
</dl>

<h2 id="Methods">Methods</h2>

<p>The global <code>RangeError</code> contains no methods of its own, however, it does inherit some methods through the prototype chain.</p>

<h2 id="RangeError_instances"><code>RangeError</code> instances</h2>

<h3 id="Properties_2">Properties</h3>

<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError/prototype', 'Properties')}}</div>

<h3 id="Methods_2">Methods</h3>

<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError/prototype', 'Methods')}}</div>

<h2 id="Examples">Examples</h2>

<h3 id="Using_RangeError">Using <code>RangeError</code></h3>

<h2 id="RangeError" name="RangeError">RangeError</h2>

<h3 id="HTML_Content">HTML Content</h3>

<pre class="brush: html">
Check console</pre>

<h3 id="JavaScript_Content">JavaScript Content</h3>

<pre>
<code>var min = 0, max = 400, check = function(num) { 
    if (num &lt; min || num &gt; max) { 
        throw new RangeError('Parameter must be between ' + min + ' and ' + max);
    }
}; 
try { 
  check(500); 
} catch (e) { 
  if (e instanceof RangeError) {
&nbsp;   // Handle range error
    throw e; 
  }
}
try {
  check(300);
} catch (e) {
  if (e instanceof RangeError) {
    throw e;
  }
}</code></pre>

<p>{{ EmbedLiveSample('RangeErrorEx') }}</p>

<p>&nbsp;</p>

<h2 id="Specifications">Specifications</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Status</th>
   <th scope="col">Comment</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>&nbsp;</td>
  </tr>
  <tr>
   <td>{{SpecName('ES6', '#sec-native-error-types-used-in-this-standard-rangeerror', 'RangeError')}}</td>
   <td>{{Spec2('ES6')}}</td>
   <td>&nbsp;</td>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-native-error-types-used-in-this-standard-rangeerror', 'RangeError')}}</td>
   <td>{{Spec2('ESDraft')}}</td>
   <td>&nbsp;</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility">Browser compatibility</h2>

<div>{{CompatibilityTable}}</div>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>Chrome</th>
   <th>Firefox (Gecko)</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>Android</th>
   <th>Chrome for Android</th>
   <th>Firefox Mobile (Gecko)</th>
   <th>IE Mobile</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
  </tr>
 </tbody>
</table>
</div>

<h2 id="See_also">See also</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>
</ul>
Revert to this revision