Существует здравый смысл, что каждое исключение происходит от класса Exception. Когда вы пишете:

try:
    dwarfs_stupid_trick()
except Exception as e:
    Amok_happy()

это то же самое, что

try:
    dwarfs_stupid_trick()
except:
    Amok_happy()

Но это не так.

Сегодня я узнал, что есть несколько стандартных исключений, которые не являются производными от класса Exception. Это:

>>> issubclass(KeyboardInterrupt, Exception)
False
>>> issubclass(SystemExit, Exception)
False

Они являются производными от класса BaseException, который, в свою очередь, является родительским для класса Exception.

Я нашел это как ошибку в моем очень умном менеджере контекста, который предоставляет услугу «очистки», когда код внутри контекста прерывается исключением. Все работало нормально, кроме KeyboardInterrupt. Я использовал except Exception as e, и это было ошибкой, правильно было использовать except BaseException as e.