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

Reply via email to