Very interesting.

I'd have guessed no arguments would catch anything, also strange how 2
functions in the same library (open-uri) would have different
exeception types. 500 errors return something that happens to be
caught as a StandardError while this Timeout::Error is of a whole
different lineage.  Oh well, I'm going with it. ;) We have to operate,
at least currently, under the assumption that the person who wrote the
library is hell of smarter than I am.

I trust that this will fix the problem, though I wont really ever know
for sure because the script only crashed out in that manner every few
days anyway.

Thanks again for all you guys' help. Long live Ruby.

-Harold
p.s. Are my initial questions getting double posted? or is gmail just
getting confused? 1000 apologies if they are getting double posted.

On 11/17/05, Gregory Brown <gregory.t.brown / gmail.com> wrote:
> On 11/17/05, zdennis <zdennis / mktec.com> wrote:
> > Harold Hausman wrote:
> >
> > >
> > > .... Right, so, isin't begin, rescue, end supposed to stop exactly this
> > > from happening? Or chances are, I've misunderstood.
> > >
> >
> > 'rescue' by itself catches StandardError exceptions and subclasses of StandardError. The
> > Timeout::Error is probably not a StandardError, but probably a subclass of Exception.
>
> Yup, that's what it is:
> irb(main):004:0> Timeout::Error.ancestors
> => [Timeout::Error, Interrupt, SignalException, Exception, Object, Kernel]
>
> Ignore my first post and catch one of the above explicitly, and that
> should solve your problem
> (excluding Object and Kernel, of course ;) )
>
>