JavaScriptにおけるさまざまな例外のスロー
自分自身の例外をスローし、 その場合にエラーオブジェクトがどのように 振る舞うかを見てみましょう:
try {
throw new Error('例外のテキスト');
} catch (error) {
console.log(error.name); // 'Error'
console.log(error.message); // '例外のテキスト'
}
ご覧の通り、例外の型は 'Error' です。
この方法でスローされるどんな例外も
同じ型になります。しかし、これは
必ずしも便利ではありません。なぜなら、
複数の例外が発生する可能性がある場合、
それらを互いに区別することができないからです。
JavaScriptにはこの問題の解決策があります:
Error 型だけでなく、
JavaScriptに組み込まれている
任意のエラー型の例外をスローできます。
例えば、TypeError、
SyntaxError、RangeError などです。
例として、SyntaxError 型の
例外をスローしてみましょう:
try {
throw new SyntaxError('例外のテキスト');
} catch (error) {
console.log(error.name); // 'SyntaxError'
console.log(error.message); // '例外のテキスト'
}
TypeError 型の例外をスローしてください。
SyntaxError と RangeError 型の
例外をスローしてください。
これらの例外を1つの try ブロックで
キャッチしてください。catch ブロックで、
異なる型の例外に対して異なるエラーメッセージを
表示してください。