class Grape::Middleware::Error

def run_rescue_handler(handler, error, endpoint)

def run_rescue_handler(handler, error, endpoint)
  if handler.instance_of?(Symbol)
    raise NoMethodError, "undefined method '#{handler}'" unless respond_to?(handler)
    handler = public_method(handler)
  end
  response = catch(:error) do
    handler.arity.zero? ? endpoint.instance_exec(&handler) : endpoint.instance_exec(error, &handler)
  end
  if error?(response)
    error_response(response)
  elsif response.is_a?(Rack::Response)
    response
  else
    run_rescue_handler(method(:default_rescue_handler), Grape::Exceptions::InvalidResponse.new, endpoint)
  end
end