Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Node.js24.x】Promise::catch()メソッドの使い方

catchメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

catchメソッドは、Node.jsの組み込み機能であるPromiseオブジェクトにおいて、非同期処理中に発生したエラーを捕捉し、処理するために使用されるメソッドです。Promiseは、成功または失敗する可能性のある非同期操作の最終的な完了(または失敗)と、その結果の値を表すオブジェクトです。

このcatchメソッドは、対象となるPromiseが何らかの理由で失敗(「拒否」と呼ばれます)した場合に実行されるコールバック関数を登録します。登録されたコールバック関数は、Promiseが拒否された際に発生したエラーオブジェクトを引数として受け取ります。これにより、開発者はエラーの種類に応じた適切な処理(例えば、ユーザーへのエラーメッセージ表示やログ記録など)を行うことができます。

catchメソッドは、Promiseチェーンにおけるエラーハンドリングを簡潔に記述するために存在し、実質的にはthen(null, onRejected)と同じ動作をします。つまり、thenメソッドの第二引数としてエラーハンドリング関数を渡す代わりに、catchを単独で呼び出すことで、より読みやすくエラーハンドリングを設定できます。さらに、catchメソッド自身も新しいPromiseを返すため、エラーを処理した後も、その新しいPromiseに対してさらに別のthencatchメソッドを連結して処理を継続することが可能です。この仕組みにより、非同期処理の実行中に発生したエラーを一元的に捕捉し、堅牢にハンドリングしながら、安全に次の処理へ進むことができるよう設計されています。

構文(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で発生したエラーが処理された後の状態を表します。

関連コンテンツ