functionの中でもDB更新をしていて、PDOのエラーを検知する可能性があります。
呼び出し元でのDB更新部分で検知されるPDOのエラー同様、エラーの取り扱いは呼び出し元で取り扱いたい=呼び出し元で画面構成を行うコーディング部分に活かしたい、と考えています。(呼び出された側で発生したPDOのエラーメッセージを呼び出し元で取得したい)
こういった場合、どういう手続きをとるのが一般的でしょうか?
以下コーディングでは、一般的な例外としてキャッチはできるものの、PDOのエラー詳細まで呼び出し元で取得できないのかな??と思い悩んでいます。
Exceptionクラスの拡張・getPreviousとかいうものを利用してみたかったのですが、よく分からないのでお問い合わせさせて頂きました。
よろしくお願いいたします。
参考を試みたサイト
PHP
1try { 2 3 『DB更新処理①』、グダグダ直接記載 //errorはPDOEceptionでcatch 4 5 if(★DB更新処理②★) != null) { //DB更新処理②は使い勝手よくFunctionにしてる 6 throw new Exception(); //内部ではやはりPDOEceptionでcatchされる 7 } //しかし、呼出し元で上記同様エラー制御をしたい。 8 9 GOTO 正常完了処理へ 10 11} catch (PDOException $e) { 12 error_log('DB更新処理①に失敗'.$e->getMessage(),0); 13} catch (Exception $e) { 14 error_log('DB更新処理②に失敗'.$e->getMessage(),0); 15} 16 17//DB更新処理①でも②でも、エラー目的の処理をここで行う 18//つまりDB更新処理②についても、エラー取扱いは呼出し元で行いたい。 19 20 21function ★DB更新処理②★($conn,~) { 22 try { 23 $errcd = null; 24 『DB更新処理②本質』、グダグダ直接記載 //errorはPDOEceptionでcatch 25 return $errcd; //errorなければnullでかえす 26 27 } catch (PDOException $e) { 28 $errcd = 999; 29 return $errcd; 30 } 31}
回答2件
あなたの回答
tips
プレビュー