Net::HTTPは内部でTimeoutを利用しているけども、これのエラー補足までの面倒は見てくれない。 なので必ずrescueで補足してあげる必要がある。 begin Net::HTTP.get(url) rescue puts "exception on HTTP: #{$!}" end ・・・と安直にやりたいところだけれど、ここに落とし穴。 実際にHTTP通信がタイムアウトを起こすとこうなってしまう。 /usr/lib/ruby/1.8/timeout.rb:54:in `rbuf_fill': execution expired (Timeout::Error) 引数無しのrescueはStandardErrorとそのサブクラスしか受け付けてくれない。 error_type が省略された時は StandardError のサブクラスである全ての例外を捕捉します。 プログラミング言語