考虑一个Rack应用程序。如果我们没有运行测试,我只想处理错误:
begin
do_something
if ENV[ 'RACK_ENV' ] != 'test'
rescue => error
handle_error error
end
end
end
这会生成syntax error, unexpected keyword_rescue (SyntaxError)
rescue => error
有办法做到这一点吗?
答案 0 :(得分:9)
你可以这样做吗?
begin
do_something
rescue => error
if ENV["RACK_ENV"] == "test"
raise error
else
handle_error error
end
end
如果您没有进行测试,这将重新抛出异常。
修改强>
正如@Max指出的那样,你可以对此更加简洁。
begin
do_something
rescue => error
raise if ENV["RACK_ENV"] == "test"
handle_error error
end
答案 1 :(得分:1)
您可以随时拯救它,然后根据您的情况处理或重新抛出
begin
do_something
rescue => error
if ENV['RACK_ENV'] != 'test'
handle_error error
else
raise error
end
end