JavaScriptのカスタムエラー

JavaScriptは、エラータイプに応じてtry / catch式で発生する8つのエラーオブジェクトのセットを提供します。彼らです:

  • Error
  • EvalError
  • RangeError
  • ReferenceError
  • SyntaxError
  • TypeError
  • URIError

私はそれらすべてを分析しましたJavaScriptエラーチュートリアル。

ここでは、基本のErrorクラスを拡張して独自のカスタムエラーを作成する方法を説明します。

class OutOfFuelError extends Error {}

class FlatTireError extends Error {}

カスタムエラーを使用すると、エラーメッセージを使用してエラーの種類を理解することなく、特定のエラータイプに基づいて異なる動作を行うことができます。

try {
  //some code
} catch (err) {
  if (err instanceof OutOfFuelError) {
    //handle error
  } else if (err instanceof FlatTireError) {
    //handle error
  }
}

もちろん、そうする前に、コードでエラーを明示的にスローする必要があります。

try {
  const car = new Car() //imagine we have a Car object

  if (!car.fuel) {
    throw new OutOfFuelError('No fuel!')
  }
  if (car.flatTire) {
    throw new FlatTireError('Flat tire!')
  }
} catch (err) {
  if (err instanceof OutOfFuelError) {
    //handle error
  } else if (err instanceof FlatTireError) {
    //handle error
  }
}

エラーの作成中に、クラスに関連するものをカスタマイズすることもできます。必要に応じて、コンストラクターが受け取るパラメーターをカスタマイズすることもできます。

class OutOfFuelError extends Error {
  constructor(message) {
    super(message)
    this.name = "OutOfFuelError"
  } 
}

私の無料ダウンロードJavaScriptビギナーズハンドブック


その他のjsチュートリアル: