【PHP8.x】getPreviousメソッドの使い方

getPreviousメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

getPreviousメソッドは、例外の連鎖において、現在の例外がスローされる原因となった直前の例外を取得するために実行するメソッドです。PHPの例外処理では、あるエラーを捕捉し、それを内包する形で新しい例外をスローすることができます。この仕組みを「例外の連鎖」と呼び、エラーの文脈を保持したまま処理を続行する際に利用されます。このメソッドは、UnderflowExceptionオブジェクトに対して呼び出され、もしこの例外が別の例外によって引き起こされたものである場合、その原因となった先行の例外オブジェクトを返します。先行する例外が存在しない、つまり現在の例外が連鎖の起点である場合にはnullを返します。この機能を利用することで、表面的なエラーだけでなく、その根本原因となったエラー情報まで遡って調査することが可能になります。これにより、デバッグ作業の効率が向上し、複雑なエラー状況の解析が容易になります。このメソッドはThrowableインターフェースで定義されているため、UnderflowExceptionだけでなく、PHPの全ての例外クラスで共通して使用することができます。

構文(syntax)

1<?php
2
3try {
4    // 元となる例外を生成します。
5    $originalException = new LogicException("元のエラーです。");
6
7    // UnderflowExceptionをスローする際に、3番目の引数に元の例外を渡します。
8    throw new UnderflowException("操作がアンダーフローを起こしました。", 0, $originalException);
9
10} catch (UnderflowException $e) {
11    // getPrevious()メソッドで、チェーンされた元の例外を取得します。
12    $previous = $e->getPrevious();
13
14    if ($previous !== null) {
15        // 取得した例外のメッセージを表示します。
16        echo $previous->getMessage();
17    }
18}
19
20?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

?Throwable

UnderflowException クラスの getPrevious メソッドは、この例外が発生する前に発生した例外オブジェクトを返します。例外が発生していない場合は null を返します。

【PHP8.x】getPreviousメソッドの使い方 | いっしー@Webエンジニア