From: Bill Atkins Date: 2004-10-05T10:20:57+09:00 Subject: Re: Timeout error? Add a rescue clause for the exception you're getting: begin ... rescue Timeout::Error => e ... rescue Errno::ETIMEDOUT => e ... end Is that what you're looking for? Bill Atkins On Tue, 5 Oct 2004 06:09:53 +0900, Mark Probert wrote: > > Hi .. > > I have the following code: > > def alive?(host,port) > ok = false > begin > Timeout::timeout(30) { > begin > t = TCPSocket.new(host,port) > t.close > ok = true > rescue Exception => e > @exception = e > end > } > rescue Timeout::Error => e > @exception = e > end > return ok > end > > In a known failure case, TCPSocket will fail (no host connectivity). > This will cause timeout() to trigger an exception that will get caught by > the Timeout::Error handler. Right? > > However, > > 13:56 (hobbes)$ ruby foo.rb > Exception `Errno::ETIMEDOUT' at ./bsn.rb:150 - Connection timed out - > > 13:57 (hobbes)$ ruby -v > ruby 1.8.1 (2003-12-25) [i386-cygwin] > > What is the right way of handling this exception? > > -- > -mark. (probertm @ acm dot org) > >