自分が忘れがちなのでメモ。
スタックトレースで発生源までたどれるようになります。
public __construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )
$previousを設定する
function base_test()
{
try
{
// エラー判定省略
throw new RuntimeException('エラー詳細1');
// エラー判定省略
throw new RuntimeException('エラー詳細2');
// エラー判定省略
throw new RuntimeException('エラー詳細3');
}
catch (RuntimeException $exception)
{
throw new RuntimeException('エラーが発生しました', 0, $exception);
}
}
function test()
{
try
{
$this->base_test();
return true;
}
catch (RuntimeException $exception)
{
// スタックトレースをログに残す
error_log($exception, 0);
return false;
}
}