BaseExceptionなんていうのがあるのね
ExceptionじゃKeyboardInterruptは拾えないの? - Bouldering & Com.で基底クラスのはずのExceptionでKeyboardInterruptがキャッチできない!って書いたけど、よくわかんなかったので、ソースをみたら、BaseExceptionとかいうのを継承してるように見えたので、試してみたらキャッチできた。
In [135]: try: raise KeyboardInterrupt('happen!', 'hello!') except BaseException , e: print e.__repr__() .....: KeyboardInterrupt('happen!', 'hello!')
BaseExceptionだとキャッチできるのね。BaseExceptionでキャッチするのがいいか悪いかはまた別の話として。スワローキャッチになりそうだから、ちゃんとしたコードでは使わんのだろうと思うけど。
全ての組み込み例外はこのクラスから導出されています。
http://www.python.jp/doc/2.4/lib/module-exceptions.html
って書いてあるけど、KeyboardInterruptは組み込み例外じゃないんかいな。違いがわかんないです!