From: Jan Svitok Date: 2006-11-08T22:45:17+09:00 Subject: Re: Exception catch-all On 11/8/06, Paul Lutus 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.