RuudBurger/CouchPotatoServer — pull request #89 by mjc (2012-04-04 00:44:28+00:00)
Title: Fix broken and greedy default exception handler, and throw meaningful log message when pywin32 is missing

The full explanations are in the individual commit logs, so here's the tl;dr:

- default exception handler screws up when the exception does not have a (errno, message) tuple.
- default exception handler would potentially catch EINT in many places when it is likely that the intent was to catch EINT on sockets and/or keyboards

- ImportErrors were getting suppressed at plugin load time, making it non-obvious when pywin32 or other required modules are missing.

These commits are quick hacks designed to shape up just this one specific area. I would be more than happy to clean up the signal handling code and the plugin error handling stuff properly - but it seemed potentially wasteful to do a full cleanup without starting a discussion first as the original code's intent is unclear.

Cheers,
- mjc