Why is false by default? In what case would you want an exception to
propagate to the top of a thread and kill it SILENTLY and then keep running?
Why doesn't it at least print something out if it isn't going to kill the
program?

We had a problem where a DRb server died silently causing a lot of headache
trying to figure out why the program was suddenly no longer functioning
correctly. Any module that a person imports that uses threads (unknown to
the user of that module) can die and cause problems SILENTLY.

With my change, the exception could always print out a message and die based
on an option like abort_on_exception.

Steve Tuckner

> -----Original Message-----
> From: ts [mailto:decoux / moulon.inra.fr]
> Sent: Friday, August 08, 2003 12:35 PM
> To: ruby-talk ML
> Cc: ruby-talk / ruby-lang.org
> Subject: Re: Catching thread exceptions
>
>
> >>>>> "S" == Steve Tuckner <STUCKNER / MULTITECH.COM> writes:
>
> S> Is there a better way?
>
>  Thread.abort_on_exception = true
>
> svg% ruby -e 'Thread.new { raise "aa" }; p "after"'
> "after"
> svg%
>
> svg% ruby -e 'Thread.abort_on_exception = true; Thread.new {
> raise "aa" }; p "after"'
> -e:1: aa (RuntimeError)
>         from -e:1:in `initialize'
>         from -e:1:in `new'
>         from -e:1
> svg%
>
>
> Guy Decoux