确保我关闭连接,但也只是抛出异常

时间:2017-12-21 22:31:26

标签: ruby

我想确保我的@client已关闭,但我也希望像通常那样抛出异常。

这是正确的模式吗?

@client = ....

begin
   # code here
rescue
   # ????
ensure
   @client.close
end

我应该在救援中打电话加注吗?

1 个答案:

答案 0 :(得分:2)

如果你不想做任何事情"除了这里的例外,让它像正常一样得到raise d,然后简单地说:

@client = ....

begin
  # code here
ensure
  @client.close
end

或者,如果你想要对异常做些什么,那么:

@client = ....

begin
  # code here
rescue => e
  puts e.message # Or whatever...
  raise e        # Then re-raise it!
ensure
  @client.close
end