catchで捕まえた例外をどのように処理するかはまた人それぞれだとは思いますが、Java には printStackTrace() という便利な関数があります。
コールした関数を順に出力してくれる関数です。
ここではPHPで関数コールを出力する関数を実装してみました。
例外処理で呼び出すと、関数呼び出しのトレース文字列を出力します。
try
{
// 関数本体
}
catch(Exception $e)
{
echo trace(debug_backtrace());
}
関数のコールを順に出力するための関数です。
function trace($traceList)
{
$html="";
foreach($traceList as $debugInfo)
{
$pathInfo=pathinfo($debugInfo['file']);
$baseName=$pathInfo['basename'];
$funcName=$debugInfo['function'];
$lineNum=$debugInfo['line'];
$html.="@$funcName ($baseName: $lineNum)";
}
return $html;
}