在我的 ROR 项目中,我有一个控制器,我希望始终在其中捕获异常以在错误传播回调用者之前进行一些清理。这可以在 ROR 中完成吗?我想要一个在控制器中遇到任何异常时都会调用的钩子。
问问题
52 次
2 回答
1
您可以使用around_filter
.
class PagesController < ApplicationController
around_filter :custom_handle_exception
def show
# ...
end
private
def custom_handle_exception
yield
rescue StandardError => e
handle_the_error(e)
raise e
end
end
rescue_from
你也可以用类方法做类似的事情。
您通常不应该挽救所有异常。不过,异常继承StandardError
应该可以很好地挽救。
于 2013-02-02T00:42:00.227 回答
1
您可以使用rescue_from
:
class WhateverController < ApplicationController
rescue_from Exception do |exception|
# whatever handling here
end
# ...
end
于 2013-02-02T00:49:37.197 回答