The reality is, as of Rails 3, ApplicationController can't catch ActionController::RoutingError and thus, we cannot take advantage of rescue_from like we used to for ActiveRecordErro::RecordNotFound.
There is nice blog how we can manage this in simple way. http://techoctave.com/c7/posts/36-rails-3-0-rescue-from-routing-error-solution