此代码块在Rails控制台中抛出一条警告消息 - 警告:其他没有救援是没用的
def handle_exceptions(e)
case e
when ActionController::UnknownAction, ActiveRecord::RecordNotFound, ActionController::RoutingError
not_found
else
internal_error(e)
end
end
有什么线索?
答案 0 :(得分:4)
我认为此错误不是来自您发布的源代码,而是来自调用它的位置。
我可以用这个实现证明它,它也使用1.9.2-p290:
module ActionController
class UnknownAction; end
class RoutingError; end
end
module ActiveRecord
class RecordNotFound; end
end
class Test
def test_exception
raise "error"
rescue
handle_exceptions($!)
end
def test_failing
else puts "invalid"
end
end
def not_found
puts "not found"
end
def internal_error(e)
puts e
end
def handle_exceptions(e)
case e
when ActionController::UnknownAction, ActiveRecord::RecordNotFound, ActionController::RoutingError
not_found
else
internal_error(e)
end
end
end
Test.new.test_exception
Test.new.test_failing