【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を返します。