少しでも楽にならないかと、例外を使うことにしたわけですが・・・
エラー処理の中でも、一番面倒でつまらないエラーメッセージの扱いが楽にならないか例外使ってみました。って、簡単な話で、例外中にエラーメッセージ入れて飛ばします。
class AppException extends Exception {} try { try { ABC::do_something(); } catch( NotBadAbcException $e ) { throw new AppException( 'ちょっと変だよ' ); } if( !ABC::count_something() ) { throw new AppException( '何もないよ' ); } } catch( AppException $e ) { $error_msg = $e->getMessage(); } catch( Exception $e ) { $error_msg = '申し訳ございませんッ!'; }
AppExceptionというは、エラーメッセージを運ぶための例外です。
下流のライブラリで例外をキャッチしたら、適当なエラーメッセージをAppExceptionに入れて飛ばします。その他、どんな条件でも問題があればAppExceptionを投げます。
で、AppException以外の例外は極めて深刻なエラーでしょうから、ひたすら謝るとかするわけです。実際は、もう少し細かく対応すると思いますが、こんな使い方です。
ようするにgoto文のような使い方ですね。
でもメッセージを内包できるのが少し楽。
これで実際に開発してみたのですが、ほんのちょっとコードが見やすくなったと思います。またエラーが起きた場所でエラーメッセージを書くので、的確なメッセージを考えやすいのもいいです。
0 件のコメント:
コメントを投稿