Ruby 是否可以使用带条件的rescue?
考虑一个Rack应用程序。我只想在未运行测试时处理错误:Ruby 是否可以使用带条件的rescue?,ruby,exception,rack,Ruby,Exception,Rack,考虑一个Rack应用程序。我只想在未运行测试时处理错误: begin do_something if ENV[ 'RACK_ENV' ] != 'test' rescue => error handle_error error end end end 这将生成语法错误、意外的关键字\u rescue(SyntaxError) rescue=>错误 有办法吗?你能这样做吗 begin do_something rescue => err
begin
do_something
if ENV[ 'RACK_ENV' ] != 'test'
rescue => error
handle_error error
end
end
end
这将生成语法错误、意外的关键字\u rescue(SyntaxError)
rescue=>错误
有办法吗?你能这样做吗
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
如果在救援中引发异常,则不需要传递参数:
raiseif ENV[“RACK_ENV”]=“test”;handle_error error
这里的问题是它更改了错误的位置。