Leslie Viljoen
11/8/2006 2:15:00 PM
On 11/8/06, Jan Svitok <jan.svitok@gmail.com> wrote:
> On 11/8/06, Paul Lutus <nospam@nosite.zzz> wrote:
> > Leslie Viljoen wrote:
> >
> > > I have a script that needs to run unattended every night, and I need
> > > to log if it throws an exception anywhere. Is this as simple as
> > > putting a begin..rescue..end around the top-most statements? I know
> > > that doesn't work in C#. Is there a hook or some way that a catch-all
> > > is supposed to be done in Ruby?
> > >
> > > Les
> >
> > This should catch everything, AFAIK:
> >
> > begin
> > ...
> > rescue Exception => err
> > puts err
> > end
> >
> > If there is nothing but function calls between "begin" and "rescue", e.g. if
> > the entire executable block lies there, this should do it.
>
> You should put this begin...rescue...end around each thread body you
> start, unless you set
> Thread.abort_on_exception = true. Otherwise exceptions in other
> threads might get lost.
>
> Finally I'll mention that rescue without parameter rescues only
> StandardError, and therefore doesn't catch all Exceptions.
Thanks, that helps.