# TimeoutError < Interrupt

timeout.rb で定義される例外クラスです。関数 `timeout` がタイ ムアウトすると発生します。

timeout.rb を使うライブラリを作成する場合は、ユーザが指定した timeout を捕捉しないようにライブラリ内で TimeoutError のサブクラスを 定義して使用した方が無難です。 *1

    ==> foo.rb <==
    require 'timeout.rb'
    class Foo
      FooTimeoutError = Class.new(TimeoutError)
      def longlongtime_method
        timeout(100, FooTimeoutError) {
           ...
        }
      end
    end

    ==> main.rb <==
    require 'foo'
    timeout(5) {
      Foo.new.longlongtime_method
    }

## スーパークラス:

Interrupt

*1 注: version 1.6 では、[ruby-list:33352] のパッチが必要です。 このパッチは 1.7 に取り込まれました[ruby-list:33391]

links: [Interrupt] [timeout.rb]
reverse links: [1.6.8から1.8.0への変更点(まとめ)] [Net::Telnet] [Timeout] [ruby 1.8 feature] [timeout.rb]