Rails 2.0・その15(コントローラでの例外処理をまとめて記述)
コントローラで例外が起きた時に実行される処理を、rescue_fromを使ってまとめて書くことができます。
言ってみれば、コントローラ内にあるたくさんのメソッドごとに例外処理を書くのではなくて、1コントローラにつき1回だけ例外処理を書くようにできるということです。
例を見てみましょう。
app/controllers/people_controller.rb
と書きますと、action1 や action2 で発生した同じ名前の例外を、まとめてhandle_ex1で処理できるようになります。
実際、このまとめて書く処理の方法がどう役に立つのか・・・分かりませんorz
ActiveRecordとかNotAuthorizedとか、何か具体的な使い道が思いついた方はコメントください、という他力本願マンセーな弥生の宵
【広告】
言ってみれば、コントローラ内にあるたくさんのメソッドごとに例外処理を書くのではなくて、1コントローラにつき1回だけ例外処理を書くようにできるということです。
例を見てみましょう。
app/controllers/people_controller.rb
・
・
class Exception1 < Exception # 例外クラスを定義する
end
rescue_from Exception1, :with => :handle_ex1
def action1
raise Exception1
render(:text => 'action1')
end
def action2
raise Exception1
render(:text => 'action2')
end
protected
def handle_ex1
render(:text => 'handle_ex1')
end
・
・
と書きますと、action1 や action2 で発生した同じ名前の例外を、まとめてhandle_ex1で処理できるようになります。
実際、このまとめて書く処理の方法がどう役に立つのか・・・分かりませんorz
ActiveRecordとかNotAuthorizedとか、何か具体的な使い道が思いついた方はコメントください、という他力本願マンセーな弥生の宵
【広告】