【PHP8.x】previousプロパティの使い方

作成日: 更新日:

previousプロパティは、現在のErrorオブジェクトが、別の例外やエラーによって引き起こされた場合に、その元の原因となるThrowableオブジェクトを保持するプロパティです。このプロパティは、エラーの連鎖(Exceptionチェイニング)と呼ばれる仕組みを構築するために利用されます。

プログラミングにおいて、ある処理で問題が発生し、その問題を捕捉して、さらに上位の処理で新しいエラーや例外を発生させることがあります。このような場合、新しいエラーオブジェクトのpreviousプロパティに、元のエラーオブジェクトを設定することで、エラー発生の履歴を追跡できるようになります。

具体的には、Errorクラスのコンストラクタには、オプションとしてprevious引数が用意されており、ここに前のThrowableオブジェクト(Exceptionや別のErrorなど)を渡すことができます。もし前のThrowableオブジェクトが指定されなかった場合、このpreviousプロパティの値はnullとなります。

この連鎖情報があることで、アプリケーションで予期せぬ問題が発生した際に、最終的なエラーに至るまでの経緯や根本的な原因を、順番にさかのぼって特定することが容易になります。デバッグ作業やエラーログの記録において、エラーの原因究明に役立つ非常に重要な情報源として活用されます。PHP 7以降で導入されたThrowableインターフェースを実装するすべてのクラスがこの機能を利用できます。

基本的な使い方

構文(syntax)

1<?php
2// Error クラスのインスタンスから previous プロパティにアクセスする構文
3$error = new Error("An error occurred.", 0, new Exception("Original cause"));
4$previousThrowable = $error->previous;
5?>

引数(parameters)

戻り値(return)

?Throwable

Errorクラスのpreviousプロパティは、現在のThrowable(例外またはエラー)の原因となった前のThrowable、またはnullを返します。

【PHP8.x】previousプロパティの使い方 | いっしー@Webエンジニア