class ActionDispatch::DebugExceptions - actionpack-3.2.22 Documentation

# class ActionDispatch::DebugExceptions

This middleware is responsible for logging exceptions and showing a debugging page in case the request is local.

### Constants

RESCUES_TEMPLATE_PATH

### Public Class Methods

new(app) click to toggle source

    # File lib/action_dispatch/middleware/debug_exceptions.rb, line 10
    def initialize(app)
      @app = app
    end

### Public Instance Methods

call(env) click to toggle source

    # File lib/action_dispatch/middleware/debug_exceptions.rb, line 14
    def call(env)
      begin
        response = @app.call(env)

        if response[1]['X-Cascade'] == 'pass'
          body = response[2]
          body.close if body.respond_to?(:close)
          raise ActionController::RoutingError, "No route matches [#{env['REQUEST_METHOD']}] #{env['PATH_INFO'].inspect}"
        end
      rescue Exception => exception
        raise exception if env['action_dispatch.show_exceptions'] == false
      end

      exception ? render_exception(env, exception) : response
    end