Что такое цепочка исключений (exception chaining) в Python?
Уровень: Senior
Ответ
Это механизм автоматического связывания исключений, когда одно было поднято во время обработки другого. В Python, если в except бросить новое исключение, то у него атрибут __context__ будет хранить первоначальное исключение. В traceback это отображается сообщением “During handling of this exception, another exception occurred”. Также можно явно связать исключения: `raise NewException() from OriginalException`. Тогда у нового исключения __cause__ будет задана, и traceback покажет "The above exception was the direct cause of the following exception". Этот механизм помогает не терять информацию о исходной причине ошибки.