@clientが閉じられていることを確認したいのですが、通常どおり例外がスローされるようにします。接続をクローズするだけでなく、例外をスローすることも可能です
これは正しいパターですか?
@client = ....
begin
# code here
rescue
# ????
ensure
@client.close
end
私はレスキューを行う必要がありますか?
@clientが閉じられていることを確認したいのですが、通常どおり例外がスローされるようにします。接続をクローズするだけでなく、例外をスローすることも可能です
これは正しいパターですか?
@client = ....
begin
# code here
rescue
# ????
ensure
@client.close
end
私はレスキューを行う必要がありますか?
あなたは単にそれから、ここでの例外を除いて、「何かを」、そしてちょうどそれが通常のように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
'確実に'がメソッドレベルに行くことができるので、例外がどこで発生するのか正確に心配していなければ、 'begin' /' end'フレームブロックを必ずしも必要としません。しかし、その場合は '@clientと@client.close'や' @client&.close'を実行して、 'nil'ハンドルを試みたり閉じたりしないようにしたいでしょう。もし' @client = ... 'がスローします。 – tadman
あなたはちょうどrescue' 'なし' begin'と 'ensure'を使用することができ、エラーを救出気にしない限り、それ以外の場合はそうちょうど再調達エラーあなたは何を今まで行った後'rescue'ブロック内にある必要があります(例えば、Logged the errまたは) – engineersmnky