RangeError
RangeError オブジェクトは、値が配列内に存在しない、または値が許容範囲にない場合のエラーを表します。
解説
RangeErrorは、関数に対して引数として許容されない範囲の数値を渡そうとした場合に発生します。
これは次のような場合に発生します。
- 許容されない文字を含む文字列を
String.prototype.normalize()に渡した場合 Arrayコンストラクターで不正な長さの配列を作ろうとした場合- 数値に関するメソッド
Number.prototype.toExponential(),Number.prototype.toFixed(),Number.prototype.toPrecision()に不適切な値を渡した場合
コンストラクター
RangeError()-
新しい
RangeErrorオブジェクトを生成します。
インスタンスプロパティ
RangeError.prototype.message-
エラーメッセージ。 ECMA-262 は
RangeError自身がmessageプロパティを提供するべきであると規定しているにもかかわらず、 SpiderMonkey ではError.prototype.messageが継承される。 RangeError.prototype.name-
エラー名。
Errorから継承。 RangeError.prototype.fileName-
エラーが発生したファイルへのパス。
Errorから継承。 RangeError.prototype.lineNumber-
エラーが発生したファイルの行番号。
Errorから継承。 RangeError.prototype.columnNumber-
エラーが発生したファイルの列番号。
Errorから継承。 RangeError.prototype.stack-
スタックトレース。
Errorから継承。
例
数値に対する RangeError の使用
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
}
}
RangeError の使用 (数値以外に対して)
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
}
}
仕様書
| Specification |
|---|
| ECMAScript Language Specification # sec-native-error-types-used-in-this-standard-rangeerror |
ブラウザーの互換性
BCD tables only load in the browser