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

问题描述 投票:0回答:1

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

这是正确的模式吗?

@client = ....

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

我应该在救援中叫加注吗?

ruby
1个回答
2
投票

如果你不想在这里做任何“做任何事情”,只是让它像正常一样得到raised,那么简单地说:

@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
© www.soinside.com 2019 - 2024. All rights reserved.