Ссылка на язык python в раздел 7.4:
Для предложения except с выражением это выражение оценивается, и это предложение соответствует исключению, если результирующий объект "совместим" с исключением. Объект совместим с исключением, если это класс или базовый класс объекта исключения, или кортеж, содержащий элемент, совместимый с исключением.
Итак, почему except object:
не улавливает все? object
является базовым классом всех классов исключений, поэтому except object:
должен улавливать каждое исключение.
Например, это должно поймать AssertionError
print isinstance(AssertionError(), object) # prints True
try:
raise AssertionError()
except object:
# This block should execute but it never does.
print 'Caught exception'