RangeError
Baseline
広く利用可能
*
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
* この機能の一部は、対応レベルが異なる場合があります。
RangeError オブジェクトは、値が配列内に存在しない、または値が許容範囲にない場合のエラーを表します。
解説
RangeErrorは、関数に対して引数として許容されない範囲の数値を渡そうとした場合に発生します。
これは次のような場合に発生します。
- 許容されない文字を含む文字列を
String.prototype.normalize()に渡した場合 Arrayコンストラクターで不正な長さの配列を作ろうとした場合- 数値に関するメソッド
Number.prototype.toExponential(),Number.prototype.toFixed(),Number.prototype.toPrecision()に不適切な値を渡した場合
RangeError はシリアライズ可能オブジェクトであるため、structuredClone() で複製したり、ワーカー間で postMessage() を使用してコピーしたりすることができます。
RangeError は Error のサブクラスです。
コンストラクター
RangeError()-
新しい
RangeErrorオブジェクトを生成します。
インスタンスプロパティ
親である Error から継承したプロパティもあります。
これらのプロパティは RangeError.prototype で定義されており、すべての RangeError インスタンスで共有されます。
RangeError.prototype.constructor-
このインスタンスオブジェクトを作成したコンストラクター関数です。
RangeErrorのインスタンスでは、初期値はRangeErrorコンストラクターです。 RangeError.prototype.name-
エラーの種類の名前を表します。
RangeError.prototype.nameの場合、初期値は"RangeError"です。
インスタンスメソッド
親である Error から継承したメソッドがあります。
例
>数値に対する RangeError の使用
js
function check(n) {
if (!(n >= -500 && n <= 500)) {
throw new RangeError("引数は -500 以上 500 以下でなければなりません。");
}
}
try {
check(2000);
} catch (error) {
if (error instanceof RangeError) {
// エラーを処理する
}
}
RangeError の使用 (数値以外に対して)
js
function check(value) {
if (!["apple", "banana", "carrot"].includes(value)) {
throw new RangeError(
'引数は "apple", "banana", "carrot" のいずれかでなければなりません。',
);
}
}
try {
check("cabbage");
} catch (error) {
if (error instanceof RangeError) {
// エラーを処理する
}
}
仕様書
| 仕様書 |
|---|
| ECMAScript® 2027 Language Specification> # sec-native-error-types-used-in-this-standard-rangeerror> |