From 0ffb6c16258b5c39a7417f4563edf0fc7542c9ae Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 6 Dec 2004 18:25:01 +0000 Subject: Syntax errors and other exceptions thrown outside of an action are now gracefully handled by the dispatcher git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@51 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- railties/dispatches/start_server | 1 - railties/lib/dispatcher.rb | 12 +++--------- railties/lib/generator.rb | 2 +- railties/lib/webrick_server.rb | 1 - 4 files changed, 4 insertions(+), 12 deletions(-) delete mode 100644 railties/dispatches/start_server (limited to 'railties') diff --git a/railties/dispatches/start_server b/railties/dispatches/start_server deleted file mode 100644 index c6ecb4e4fe..0000000000 --- a/railties/dispatches/start_server +++ /dev/null @@ -1 +0,0 @@ -ruby public/dispatch.servlet \ No newline at end of file diff --git a/railties/lib/dispatcher.rb b/railties/lib/dispatcher.rb index 4130f009f8..49bdd093c4 100644 --- a/railties/lib/dispatcher.rb +++ b/railties/lib/dispatcher.rb @@ -24,7 +24,7 @@ class Dispatcher DEFAULT_SESSION_OPTIONS = { "database_manager" => CGI::Session::PStore, "prefix" => "ruby_sess.", "session_path" => "/" } - def self.dispatch(cgi = CGI.new, session_options = DEFAULT_SESSION_OPTIONS, error_page = nil) + def self.dispatch(cgi = CGI.new, session_options = DEFAULT_SESSION_OPTIONS) begin request = ActionController::CgiRequest.new(cgi, session_options) response = ActionController::CgiResponse.new(cgi) @@ -35,14 +35,8 @@ class Dispatcher require_dependency(controller_path(controller_name, module_name)) controller_class(controller_name).process(request, response).out - rescue Object => e - begin - ActionController::Base.logger.info "\n\nException throw during dispatch: #{e.message}\n#{e.backtrace.join("\n")}" - rescue Exception - # Couldn't log error - end - - if error_page then cgi.out{ IO.readlines(error_page) } else raise e end + rescue Object => exception + ActionController::Base.process_with_exception(request, response, exception).out ensure ActiveRecord::Base.reset_associations_loaded diff --git a/railties/lib/generator.rb b/railties/lib/generator.rb index 2f63341965..65de736751 100644 --- a/railties/lib/generator.rb +++ b/railties/lib/generator.rb @@ -73,7 +73,7 @@ module Generator end end - # Generate model, unit test, and fixtures. + # Generate model, unit test, and fixtures. class Model < Base def generate diff --git a/railties/lib/webrick_server.rb b/railties/lib/webrick_server.rb index 66c78fbd5f..248378cb57 100644 --- a/railties/lib/webrick_server.rb +++ b/railties/lib/webrick_server.rb @@ -85,7 +85,6 @@ class DispatchServlet < WEBrick::HTTPServlet::AbstractServlet res.set_error(err) return true rescue => err - p err return false end end -- cgit v1.2.3