TypeScript:
エラー処理
方法:
TypeScriptでは、エラー処理には多くの場合try
、catch
、finally
ブロックが関わってきます。
function riskyOperation() {
throw new Error("何か問題が発生しました!");
}
function handleErrors() {
try {
riskyOperation();
} catch (error) {
console.error("エラーをキャッチしました:", error.message);
} finally {
console.log("これは常に実行されます、エラーがあろうとなかろうと。");
}
}
handleErrors();
サンプル出力:
エラーをキャッチしました:何か問題が発生しました!
これは常に実行されます、エラーがあろうとなかろうと。
プロミスを用いた非同期の例:
async function asyncRiskyOperation() {
return new Promise((resolve, reject) => {
// エラーをシミュレート
reject("ひどく失敗しました");
});
}
async function handleAsyncErrors() {
try {
await asyncRiskyOperation();
} catch (error) {
console.error("非同期エラーをキャッチしました:", error);
}
}
handleAsyncErrors();
サンプル出力:
非同期エラーをキャッチしました:ひどく失敗しました
深堀り
エラー処理はプログラミングの礎石であり、始まりから存在しています。JavaScriptを基にしたTypeScriptでは、ECMAScript 2017でのasync/awaitの導入により、エラー処理がより堅牢になりました。それ以前は、非同期コード内のエラーを処理するためにコールバック関数やプロミスに頼ることが多かったです。
TypeScriptでtry/catch
の代わりに使用できる代替手段として、Reactのようなフレームワークによるエラーバウンダリがあります。サーバー側での処理には、Express.jsのようなプラットフォームでミドルウェアを使用してエラー管理を一元化することができます。
実装上では、TypeScriptには独自のエラー処理機構はなく、JavaScriptのものに依存しています。カスタムエラークラスはError
クラスを拡張して、より記述的なエラー情報を提供することができます。