【PHP】throwしたエラーをtry catchして処理続行
DBエラーとなったときにフレームワーク(framework)でエラーハンドルして独自のエラー画面を出力していたのを「予期せぬエラー」で処理続行できるようにしたメモ。
フレームワークではset_error_handlerを使って例外をthrowしているので、基本はこれをtry catchすればいい。
ただ注意しないといけないのが、例外処理のときにDBの接続を初期化しないと、次のクエリが実行できない。
この辺は使用しているO-Rマッピングライブラリ(DB接続ライブラリ)に依存するかな。
try { $db->save(); } catch (Exception $e) { $db->close(); echo $e->getMessage(); }
イメージではこんな感じ。