Можешь объяснить exception chaining в Python и описать, как синтаксис `raise ... from` и неявная цепочка исключений в обработчиках сохраняют информацию для отладки? — ДейлиПреп