JavaScript/RangeError
RangeError は、数値が特定の範囲外であるときに発生するエラーオブジェクトです。このエラーは、値が許容範囲を超えている場合に投げられます[1]。
構文
編集new RangeError() new RangeError(message) new RangeError(message, options)
message: エラーの説明を示す文字列。省略可能。options: エラーに関する追加情報を含むオブジェクト。causeプロパティを含めることができます。省略可能。
例
編集無限再帰によるRangeErrorの発生
編集以下のプログラムは、無限再帰によって RangeError が発生する例を示しています。
function checkRangeError() { checkRangeError(); // 無限再帰 } try { checkRangeError(); } catch (e) { console.log(e instanceof RangeError); // true console.log(e.message); // "Maximum call stack size exceeded" }
このプログラムでは、自分自身を繰り返し呼び出す関数によって、コールスタックサイズの上限を超え、RangeError が発生します。
配列サイズによるRangeErrorの発生
編集以下のプログラムは、配列サイズの設定によって RangeError が発生する例を示しています。
try { const arr = new Array(-1); // 負の長さは無効 } catch (e) { console.log(e instanceof RangeError); // true console.log(e.message); // "Invalid array length" }
このプログラムでは、配列の長さに負の値を指定したため、RangeError が発生します。配列の長さは非負の整数でなければなりません。
注意点
編集- 一般的な原因:
RangeErrorは通常、数値が有効な範囲外である場合に発生します。 - よくある例: 無限再帰、無効な配列長の指定、
toFixed()メソッドの引数が範囲外の場合などに発生します。 - 継承:
RangeErrorはErrorオブジェクトを継承しているため、すべてのErrorプロパティとメソッドを持っています。
脚註
編集- ^ これは、数値が有効な範囲内にないことを示すために使用されます。