在我的ROR项目中,我有一个控制器,在错误传播回调用者之前,我希望始终捕获异常以进行一些清理。这可以在ROR中完成吗?我想要一个在控制器中遇到任何异常时将被调用的钩子。
答案 0 :(得分: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
的例外情况应该可以挽救。
答案 1 :(得分:1)
您可以使用rescue_from
:
class WhateverController < ApplicationController
rescue_from Exception do |exception|
# whatever handling here
end
# ...
end