【Node.js24.x】Promise::catch()メソッドの使い方
catchメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
catchメソッドは、Node.jsの組み込み機能であるPromiseオブジェクトにおいて、非同期処理中に発生したエラーを捕捉し、処理するために使用されるメソッドです。Promiseは、成功または失敗する可能性のある非同期操作の最終的な完了(または失敗)と、その結果の値を表すオブジェクトです。
このcatchメソッドは、対象となるPromiseが何らかの理由で失敗(「拒否」と呼ばれます)した場合に実行されるコールバック関数を登録します。登録されたコールバック関数は、Promiseが拒否された際に発生したエラーオブジェクトを引数として受け取ります。これにより、開発者はエラーの種類に応じた適切な処理(例えば、ユーザーへのエラーメッセージ表示やログ記録など)を行うことができます。
catchメソッドは、Promiseチェーンにおけるエラーハンドリングを簡潔に記述するために存在し、実質的にはthen(null, onRejected)と同じ動作をします。つまり、thenメソッドの第二引数としてエラーハンドリング関数を渡す代わりに、catchを単独で呼び出すことで、より読みやすくエラーハンドリングを設定できます。さらに、catchメソッド自身も新しいPromiseを返すため、エラーを処理した後も、その新しいPromiseに対してさらに別のthenやcatchメソッドを連結して処理を継続することが可能です。この仕組みにより、非同期処理の実行中に発生したエラーを一元的に捕捉し、堅牢にハンドリングしながら、安全に次の処理へ進むことができるよう設計されています。
構文(syntax)
1new Promise((resolve, reject) => { 2 reject(new Error('処理中にエラーが発生しました。')); 3}) 4.catch(error => { 5 console.error('捕捉されたエラー:', error.message); 6});
引数(parameters)
onRejected
- onRejected: (error: any) => PromiseLike<T | never> | T | never | void: Promiseがrejectされた場合に実行されるコールバック関数。rejectされたエラー値を受け取り、同期または非同期の処理を行い、新しいPromiseまたは値を返します。
戻り値(return)
Promise
Promiseインスタンスを返します。このPromiseは、元のPromiseで発生したエラーが処理された後の状態を表します。