それなりに大きなプロジェクトでTypeScriptを使っているのですが、「Error」の使い方の基準はどうなっているのでしょうか?例えば、Javaでindex out of boundsの例外を処理したとします。
throw new IndexOutOfBoundsException();
TypeScriptでの同等のステートメントは次のようになります。
throw new Error("Index Out of Bounds");
他にどのような方法でこれを実現できるでしょうか?認められている規格は何ですか?
誰かがコメントでMDNにこのリンクを貼ってくれましたが、とても参考になったと思います。ErrorTypesのようなことがとても詳しく書かれています。
EvalError --- グローバル関数eval()に関して発生するエラーを表すインスタンスを作成します。
InternalError --- JavaScript エンジンの内部エラーが発生したときに発生するエラーを表すインスタンスを作成します。例)以下のようなものです。 "too much recursion".
RangeError --- 数値変数やパラメータが有効な範囲外にある場合に発生するエラーを表すインスタンスを作成します。 の範囲外である場合に発生するエラーを表すインスタンスを作成します。
ReferenceError --- 無効な参照を解除したときに発生するエラーを表すインスタンスを作成します。
SyntaxError --- eval()内のコードを解析する際に発生する構文エラーを表すインスタンスを作成します。
TypeError --- 変数やパラメータが有効な型でない場合に発生するエラーを表すインスタンスを作成します。
URIError --- encodeURI() または decodeURI() に無効なパラメータが渡されたときに発生するエラーを表すインスタンスを作成します。
例外的にメッセージを出したり、表示したりする簡単な方法です。
try {
throw new TypeError("Error message");
}
catch (e){
console.log((<Error>e).message);//conversion to Error type
}
上記は、ブロックからどのようなエラーが発生するかわからない場合の解決策にはなりません。このような場合には、タイプガードを使用し、適切なエラー処理を行う必要があります。