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 1075536 of RangeError

  • Revision slug: Web/JavaScript/Reference/Global_Objects/RangeError
  • Revision title: RangeError
  • Revision id: 1075536
  • Created:
  • Creator: fscholz
  • Is current revision? Yes
  • Comment Revert to revision of 2016-01-04 04:37:21 by fscholz

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

var 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
  }
}

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>

<pre class="brush: js">
var 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) {
    // Handle range error
  }
}
</pre>

<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