目次
はじめに
この記事ではTypeScriptにおける例外処理について解説します。
例外処理
例外処理とは、プログラムの実行中に想定しないエラーが発生した場合にプログラムが落ちることなく処理を続行する機構のことです。
例外の捕捉
TypeScriptで例外の捕捉するためにはtry-catchを使用します。
tryブロックに例外が発生しうる処理を記載します。
catchブロックに例外が発生した時の処理を記載します。
以下のように記載します。
try {
const user = await fetchUser();
} catch (e) {
console.log(`エラー発生しました。 ${e}`);
}
finallyブロックを追加することで、tryブロックもしくはcatchブロックのどちらに入っても実行される処理を記載できます。
try {
const user = await fetchUser();
} catch (e) {
console.log(`エラー発生しました。 ${e}`);
} finally {
console.log('最後に必ず呼ばれる。');
}
catchブロックでは例外の種類によってそれぞれのハンドリングをすることができます。
instanceofを使用して例外の種類を判別できます。
try {
const user = await fetchUser();
} catch (e) {
if (e instanceof NoNetworkError) {
console.log(`NoNetworkErrorが発生しました。 ${e}`);
} else if (e instanceof NetworkAccessError) {
console.log(`NetworkAccessErrorが発生しました。 ${e}`);
} else {
console.log(`何かしらのエラー発生しました。 ${e}`);
}
}
例外の送出
TypeScriptとは例外を意図的に発生させることができます。
例外として送出するオブジェクトはErrorオブジェクトを使用するのが一般的です。
Errorオブジェクトについては以下の記事にまとめていますので是非ご覧ください。
あわせて読みたい
throw文を使用することで例外の送出できます。
以下のように記載します。
throw new Error("エラーが発生しました");
Errorオブジェクトを使用するのが一般的と言いましたが、例えば文字列型を送出することもできます。
throw "エラーが発生しました";
以下のように記載すると、意図的にcatchブロックに入るようにできます。
try {
throw new Error("エラーが発生しました");
} catch (e) {
console.log(`何かしらのエラー発生しました。 ${e}`);
}
// "何かしらのエラー発生しました。 Error: エラーが発生しました"
まとめ
この記事ではTypeScriptにおける例外処理について解説しました。
ぜひ、いいねやコメントをお願いします。
コメント