Ruby 1.8 系と 1.9 系では Timeout::Error の継承元クラスが異なる

1.8 系の最終版である Ruby 1.8.7 では

Timeout::Error < Interrupt < SignalException < Exception < Object < Kernel

であり Ruby 1.9 系では

Timeout::Error < RuntimeError < StandardError < Exception < Object < Kernel < BasicObject 

になっています。

ウェブアプリを作る分には

rescue Timeout::Error, StandardError => e

と書かないといけなかったのが

rescue => e

で済むので便利になったと言えるかもしれませんが Ruby 1.9 系で書いたスクリプトを古い環境で動かしたい時には問題になるかもしれないので注意が必要です。