それは素晴らしい質問です。
ほとんどの PHP ユーザーは例外を理解しておらず、例外がエラー報告と関係があると考えており、完全に誤用しています! 正しい答えはかなり単純ですが:
Apache のエラー ログにエラーが表示される可能性はありますか?
はい、エラーをログに記録するように PHP に指示した場合。log_errors
ini 設定がこれを担当します。
それらがそこに表示される場合、try と catch を使用する理由は何ですか?
それは最も興味深い質問です。エラー メッセージを
処理するために、決して try catches を使用しないでください。
このメカニズムは、エラーを処理するためのものです。エラーメッセージではありません。本質的な違いがありますが、PHP 関係者のほとんどが誤解しています。
エラー メッセージを処理するには、PHP にエラーを記録するように指示するだけです。エラー自体
を処理する場合は、try catch が不可欠です。
エラー処理とは?
エラーログ以外にエラーが発生した場合に行う必要があること:
トランザクションをロールバックする
try {
$dbh->beginTransaction();
// some SQL stuff
} catch (Exception $e) {
$dbh->rollback();
throw $e;
}
エラーを処理した後に例外を再スローしていることに注意してください
重要でないコードブロックのエラーを致命的でないようにする
try {
some_non_critical_function();
} catch (Exception $e) {
log_error($e->getMessage().$e->getTrace());
}
ここではエラー メッセージを手動でログに記録する必要がありますが、残りのコードは実行します。
等々。