【PHP8.x】getPreviousメソッドの使い方
getPreviousメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
getPreviousメソッドは、連鎖された例外の直前の例外を取得するメソッドです。PHPの例外処理では、ある例外をキャッチし、それを原因として新たな例外をスローすることがあります。この仕組みを「例外の連鎖」と呼び、エラーの根本原因を保持したまま、より具体的な情報を持つ例外として扱うことを可能にします。getPreviousメソッドは、この連鎖構造を遡り、現在の例外がスローされる直接的な原因となった例外オブジェクトを取得するために使用されます。例えば、JSONデータを処理する際に発生したJsonExceptionが、ファイル読み込みエラーのような低レベルな例外によって引き起こされた場合に、このメソッドを使って元のファイル読み込み例外を特定できます。直前の例外が存在する場合は、その例外を表すThrowableオブジェクトが返されます。連鎖している例外が存在しない場合はnullが返ります。このメソッドはJsonExceptionクラスが直接定義しているものではなく、親クラスであるExceptionクラスから継承した標準的な機能であり、エラーの原因を詳細に追跡するデバッグの過程で重要な役割を果たします。
構文(syntax)
1<?php 2 3try { 4 // 例として、先行する別の例外を生成します。 5 $previous = new InvalidArgumentException('入力値が不正です。'); 6 7 // JsonExceptionを生成する際に、3番目の引数として先行する例外を渡します。 8 throw new JsonException('JSONの解析に失敗しました。', 0, $previous); 9 10} catch (JsonException $e) { 11 // getPrevious()メソッドで、ラップされた先行する例外を取得します。 12 $originalException = $e->getPrevious(); 13 14 if ($originalException) { 15 // 先行する例外の情報を出力します。 16 echo get_class($originalException) . ': '; 17 echo $originalException->getMessage(); 18 } 19} 20 21?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
?Throwable
このメソッドは、前回の例外オブジェクトを返します。例外が連鎖している場合に、その原因となった例外を取得するために使用します。