diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2008-07-16 18:51:40 +0100 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2008-07-16 18:54:08 +0100 |
commit | 90c930f45c5c6766306929241462ffff8f67b86e (patch) | |
tree | 0c8a34193358991700b5142afdb4386af3d09d3b /actionpack/lib | |
parent | c64d749abdf31a2be322b1787165024067abbda7 (diff) | |
download | rails-90c930f45c5c6766306929241462ffff8f67b86e.tar.gz rails-90c930f45c5c6766306929241462ffff8f67b86e.tar.bz2 rails-90c930f45c5c6766306929241462ffff8f67b86e.zip |
Allow Dispatcher exceptions to be handled in application.rb using rescue_from
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_controller/rescue.rb | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/actionpack/lib/action_controller/rescue.rb b/actionpack/lib/action_controller/rescue.rb index 163ed87fbb..482ac7d7a4 100644 --- a/actionpack/lib/action_controller/rescue.rb +++ b/actionpack/lib/action_controller/rescue.rb @@ -112,19 +112,23 @@ module ActionController #:nodoc: protected # Exception handler called when the performance of an action raises an exception. def rescue_action(exception) - log_error(exception) if logger - erase_results if performed? + if handler_for_rescue(exception) + rescue_action_with_handler(exception) + else + log_error(exception) if logger + erase_results if performed? - # Let the exception alter the response if it wants. - # For example, MethodNotAllowed sets the Allow header. - if exception.respond_to?(:handle_response!) - exception.handle_response!(response) - end + # Let the exception alter the response if it wants. + # For example, MethodNotAllowed sets the Allow header. + if exception.respond_to?(:handle_response!) + exception.handle_response!(response) + end - if consider_all_requests_local || local_request? - rescue_action_locally(exception) - else - rescue_action_in_public(exception) + if consider_all_requests_local || local_request? + rescue_action_locally(exception) + else + rescue_action_in_public(exception) + end end end @@ -200,7 +204,7 @@ module ActionController #:nodoc: def perform_action_with_rescue #:nodoc: perform_action_without_rescue rescue Exception => exception - rescue_action_with_handler(exception) || rescue_action(exception) + rescue_action(exception) end def rescues_path(template_name) |