Net::HTTPでのタイムアウト補足

引数無しのrescueで例外補足できるかと思ってたけど、
なぜかタイムアウトエラーは拾ってくれない。

なんでかと思ってググったら簡単な事でした。

引数無しのrescueはStandardErrorとそのサブクラスしか受け付けてくれない。

けれどもTimeout::ErrorはInterruptのサブクラス。
Net::HTTPの例外補足方法 - OVERT MEMO


ああ、なるほど。ちゃんと引数書かないと駄目なのね。
引数無しはどんなエラーでも拾うのかと思ってた。StandardErrorだけか。
という訳で

rescue Timeout::Error

と書いて無事解決。



…じゃねえええ!
net/httpの例外捕捉方法(2) - OVERT MEMO


rescue Exceptionとの併用が必要らしい。
とりあえずまだお目にかかった事が無いのでエラーが出たらrescue Exceptionも追加してみよう。