タグ

HTTPとErrorに関するtoshi3221のブックマーク (1)

  • Net::HTTPの例外補足方法 - OVERT MEMO

    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 のサブクラスである全ての例外を捕捉します。 プログラミング言語

    Net::HTTPの例外補足方法 - OVERT MEMO
    toshi3221
    toshi3221 2011/10/24
    Timeout::ErrorはInterruptのサブクラスでrescue => eでは取れない
  • 1