Exceptions occurring within the main thread in shoes are caught and
sent to a handsome console. Which is nice. Exceptions occurring in new
threads within the app, on the other hand, are dropped and the app
quietly quits working.
The user can just wrap the offending code in a begin ... rescue block
and throw any errors to the console themselves, but it quickly becomes
annoying since Shoes has a lot of sneaky threads: timers, image
blocks, downloads, the start method, all the event handlers, etc.
Every one of these, and all threads created by the user, needs its own
begin ... rescue block just to keep shoes from silently stopping in
the event of an exception.
I also think this behavior is very mysterious to new users who
attribute the "crash" to shoes, not their poor exception handling. It
would be nice if every new thread had the default behavior of sending
exceptions to the console like the main thread does.
Kyle