【PHP8.x】__constructメソッドの使い方
__construct
メソッドは、Exception
オブジェクトを初期化する(生成する)メソッドです。このメソッドは、プログラムの実行中に予期せぬ問題(例外)が発生した際に、その問題の詳細を表現するException
オブジェクトを新しく作成するために利用されます。
例外をスローする、つまりthrow new Exception(...)
という形で新しい例外を発生させるときに、この__construct
メソッドが自動的に呼び出され、Exception
オブジェクトが適切に設定されます。通常、開発者がこのメソッドを直接呼び出す必要はありません。
このメソッドには、以下の三つの引数を渡すことができます。
一つ目の$message
は、何が問題なのかを具体的に説明する文字列です。このメッセージは、エラーが発生した状況を理解し、デバッグを行う上で非常に重要です。省略された場合は空文字列が設定されます。
二つ目の$code
は、エラーの種類を識別するための整数値です。開発者が独自にエラーコードを定義し、プログラム内で特定の種別のエラーを区別するために利用することができます。省略された場合は0が設定されます。
三つ目の$previous
は、現在の例外が発生する前に、別の例外が既に発生していた場合に、その先行する例外オブジェクトを指定するものです。これにより、複数の例外が連鎖して発生した状況を追跡し、「なぜこのエラーが起きたのか」という根本原因をたどる「例外の連鎖」という仕組みを実現できます。省略された場合はnull
が設定されます。
これらの引数を利用してException
オブジェクトを生成することで、発生した問題に関する豊富な情報を保持し、エラー処理をより柔軟かつ正確に行うことが可能になります。
基本的な使い方
構文(syntax)
1public function __construct(string $message = "", int $code = 0, ?Throwable $previous = null)
引数(parameters)
string $message = "", int $code = 0, ?Throwable $previous = null
- string $message: 例外のメッセージを指定する文字列
- int $code: 例外のエラーコードを指定する整数
- ?Throwable $previous: この例外を発生させた先行する例外を指定するThrowableオブジェクト、またはnull
戻り値(return)
戻り値なし
戻り値はありません