是否可以在有条件的情况下使用救援?
Is it possible to use rescue with a conditional?
考虑一个 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
有办法吗?
你能做这样的事情吗?
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
你总是可以拯救它,然后根据你的情况处理或重新扔掉
begin
do_something
rescue => error
if ENV['RACK_ENV'] != 'test'
handle_error error
else
raise error
end
end
考虑一个 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
有办法吗?
你能做这样的事情吗?
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
你总是可以拯救它,然后根据你的情况处理或重新扔掉
begin
do_something
rescue => error
if ENV['RACK_ENV'] != 'test'
handle_error error
else
raise error
end
end