Laravelで例外処理を最短catch

例外処理とは

例外処理とは、想定できるエラーが起きたときに、あらかじめにその後の処理を記載することで、
正常に処理を続行させていくことを言います。
例えば、データベースが何かの理由で接続できなくなった時・読み込もうとしたファイルが存在しない時など、
ユーザーには特定のメッセージを返して、システム担当者にはログを残したりSlackで通知をしたりすることを
コードで記載することができます。

try {
  // 通常の処理
  
} catch (\Exception $e) {
  report($e);
  // 例外処理
}

PHP にはデフォルトで Exception という基底の例外クラスが用意されており、広くエラーを除いて拾ってくれます。
また、Laravelのreport関数で発生した例外をログに残してくれます。

例外処理でcatch後に適切な動作をするか確認したい

例外が発生した後にcatch以下でやりたいこととして、ログを出したい。Slackに通知したい。メールを送りたい。フラッシュで返したい。など色々なケースがあると思います。開発を進めてcatch側の実装は済んだけど、実際にエラーを発生させて確認したい時どうしましょう。
何か意図的に例外状況を作るために、DBをデッドロックさせますか、環境変数を変えますか、LANケーブル抜きますか。
いやいや、そんなに頑張る必要はないです。

例外処理でcatch後に適切な動作をするか確認したい

Laravelプロジェクトで開発を進める時に例外発生処理を記載し、ログを出したい。Slackに通知したい。メールを送りたい。フラッシュで返したい。など色々なケースがあると思います。
catch側の実装は済んだけど、実際にエラーを発生させて確認したい時どうしましょう。
DBをデッドロックさせますか、環境変数を変えますか、LANケーブル抜きますか。
いやいや、そんなに頑張る必要はないです。

最短でcatchへ落とす

色々と話が長引きましたが、以下でcatchに落ちます。

try {
    $hage = $hoge;
    // 処理 
} catch (\Exception $e) {
    report($e);
    // 例外処理
    Log::debug('hagehoge');
}

たまにあるミス(?)

エラーは発生しているのに、catchしてくれないぞという時。catchの後のExceptionに
\が抜けていたら、namespaceの問題で、以下に直すだけで落ちてくれる可能性が高い。かもしれない。

× } catch (Exception e){   
○ } catch (\Exception e){
おすすめの記事