buk*_*530 3 ruby ruby-on-rails ruby-on-rails-4 ruby-on-rails-4.2
我在使用rescue_from时遇到问题
class SimpleError < StandardError; end
before_action :raise_exception
rescue_from SimpleError, with: :rescue_exception
def raise_exception
raise SimpleError
end
def rescue_exception
log $!
end
def index
@unreachable_code = true
def
Run Code Online (Sandbox Code Playgroud)
如您所见,在这段代码中,我只是在操作开始之前引发了一个异常,该异常由rescue_exception方法捕获。问题是,在我捕获到异常之后,应用程序流程停止并且操作代码从未到达。抢救异常后是否可以继续执行?
简短的回答,不。rescue_from旨在处理否则未捕获的异常。
如果您想为控制器中的每个动作捕获一个特定的异常,我建议您使用around_action。
class MyController < ApplicationController
class SimpleError < StandardError; end
around_action :handle_simple_errors
def index
# code that might raise SimpleError
@unreachable_code = true
def
private
def handle_simple_errors
begin
yield
rescue SimpleError
# handle SimpleError however
end
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
933 次 |
| 最近记录: |