少しでも楽にならないかと、例外を使うことにしたわけですが・・・
エラー処理の中でも、一番面倒でつまらないエラーメッセージの扱いが楽にならないか例外使ってみました。って、簡単な話で、例外中にエラーメッセージ入れて飛ばします。
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 件のコメント:
コメントを投稿