JavaScript/RangeError

カテゴリ:Book:JavaScript#RangeError%20

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() メソッドの引数が範囲外の場合などに発生します。
  • 継承: RangeErrorError オブジェクトを継承しているため、すべての Error プロパティとメソッドを持っています。

脚註

  1. これは、数値が有効な範囲内にないことを示すために使用されます。

外部リンク

カテゴリ:Book:JavaScript#RangeError%20 カテゴリ:JavaScript
カテゴリ:Book:JavaScript カテゴリ:JavaScript カテゴリ:Pages using the JsonConfig extension