【PHP8.x】getPreviousメソッドの使い方
getPreviousメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
getPreviousメソッドは、例外が連鎖している場合に、現在の例外を引き起こした直前の例外(先行する例外)を取得するために実行するメソッドです。PHPの例外処理では、ある処理の失敗が原因で別の失敗を引き起こすことがあります。このような状況で、catchブロック内で捕捉した例外を原因として新しい例外をスローする際、元の例外を新しい例外に紐付けることができます。これを例外チェーンと呼びます。getPreviousメソッドは、この例外チェーンを遡るために使用されます。現在のRangeExceptionオブジェクトが、別の例外が原因でスローされた場合にこのメソッドを呼び出すと、その原因となった先行する例外オブジェクトを返します。これにより、エラーの根本的な原因を特定し、デバッグを効率的に行うことが可能になります。もし、先行する例外が存在しない、つまり例外チェーンの起点である場合は、このメソッドはnullを返します。このメソッドは、Exceptionクラスの親であるThrowableインターフェースで定義されているため、RangeExceptionだけでなくPHPのすべての例外オブジェクトで使用することができます。
構文(syntax)
1<?php 2 3$previous = new InvalidArgumentException("無効な引数です。"); 4 5try { 6 throw new RangeException("値が範囲外です。", 0, $previous); 7} catch (RangeException $e) { 8 // getPrevious() を使って、連鎖された前の例外を取得します。 9 $previousException = $e->getPrevious(); 10 11 if ($previousException instanceof Throwable) { 12 // 前の例外のクラス名とメッセージを出力します。 13 // 出力: 14 // InvalidArgumentException 15 // 無効な引数です。 16 echo get_class($previousException) . PHP_EOL; 17 echo $previousException->getMessage(); 18 } 19} 20 21?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
?Throwable
RangeクラスのgetPreviousメソッドは、前の例外オブジェクトを返します。例外が連鎖している場合に、その連鎖をたどるために使用されます。前の例外が存在しない場合は、nullを返します。