Позволяет задать действия для финализации контекста.
object.__exit__(self, exc_type, exc_value, traceback)
self -- Ссылка на экземпляр.

exc_type -- Тип зафиксированного исключения, либо None.

exc_value -- Объект зафиксированного исключения, либо None.

traceback -- Трассировка стека для зафиксированного исключения, либо None.

Является частью протокола контекстных менеджеров.

    class MyContextManager(object):

def __enter__(self):
print('enter')

def __exit__(self, exc_type, exc_value, traceback):
print('exit exception text: %s' % exc_value)
return True # Так подавляем исключение.


with MyContextManager(): # enter
raise Exception('fail')

Если принято исключение и требуется его подавить, метод должен вернуть значение, оцениваемое как истина (например, True). В противном случае исключение продолжит «всплытие» далее по стеку после отработки менеджера.
Специально поднимать исключение повторно в методе не следует, достаточно вернуть ложь — это даст возможность определить штатно ли он отработал.

На заметку
Любые исключения, возбуждённые в данном методе, замещают исключения, происходящие в ходе исполнения тела инструкции with.

Внимание
На уровне Python C API для этого метода в структуре типа отдельный слот не предусмотрен. Модулям-расширениям, которые хотят определить метод, должны сделать это при помощи обычных Python-методов — по сравнению с затратами, необходимыми для создание контекста исполнения, затратами на поиск метода в словаре можно пренебречь.

Нет обсуждений для отображения.
Если у вас есть, что сказать, можете представиться и исправить ситуацию.