例外発火したい
Net::HTTPResponse#value
を呼び出す。
https://docs.ruby-lang.org/ja/latest/method/Net=3a=3aHTTPResponse/i/value.html
例
Retryable.retryable(on: [Net::HTTPFatalError], tries: 2) do |_, error|
res = http.request(req)
# 500の場合のみ例外発火し、リトライする
res.is_a?(Net::HTTPInternalServerError) && res.value
end
value()は処理としては200ステータスじゃなかったら error!()
を呼び出す。パブリックメソッドなので上記の用途であれば error!
の方が視認性は高いかもしれない。
お気持ち
これを見つけ出すまでにめちゃめちゃ時間がかかった、、、 Rubyリファレンスガイドさんたのむ、、