現在、私のページは次のようになっています。
if($_GET['something'] == 'somevalue')
{
$output .= 'somecode';
// make a DB query, fetch a row
//...
$row = $stmt->Fetch(PDO::ASSOC);
if($row != null)
{
$output .= 'morecode';
if(somethingIsOK())
{
$output .= 'yet more page output';
}
else
{
$error = 'something is most definitely not OK.';
}
}
else
{
$error = 'the row does not exist.';
}
}
else
{
$error = 'something is not a valid value';
}
if($error == '') // no error
{
//display $output on page
}
else // an error
{
// display whatever error occurred on the page
}
私がやっている方法は機能しますが、おそらく明らかなことのために非常に面倒で退屈です: コードの途中で関数を呼び出したり、変数の値をチェックしたり、DB クエリを検証したりしたいとします。有効な結果を返しましたが、失敗した場合はエラーを出力しますか? 別の if/else ブロックを作成し、すべてのコードを新しい if ブロック内に移動する必要があります。これは賢明なやり方とは思えません。
私はtry/catchについて読んでいて、すべてのコードをtryステートメントの中に入れて、if/elseブロックなしでコードを順番に実行し、何かが失敗した場合は例外をスローすることを考えていました. 私が読んだことから、それは実行を停止し、catch ブロックに直接ジャンプし (失敗した if ステートメントが else ブロックに移動するのと同じように)、そこでエラー メッセージを出力できます。しかし、それは受け入れられる、または標準的な慣行ですか?
HTMLページを構築して出力するphpアプリケーションで、致命的であるかどうかにかかわらず、エラーを処理する最良の方法は何ですか? ユーザーにとって非常に使いにくいので、空白の画面で死ぬだけではなく、ヘッダーとフッターを表示できるように、ページの本文にメッセージを出力したいと考えています。
アドバイスありがとうございます!