узнать откуда рейз на экспешн упал, когда он остановился на строке эксепшена?
В смысле откуда упал? Ну где остановился, там и вызвали. Или ты о чем?
Ну вот есть у меня трай, после эксепт. Внутри трая много функций, Я дебажу, дебажу, и в какой то момент выполнение выходит из трая и падает на эксепт. Вот я не могу найти место где исключение рейзится
А, ты в эксепте поймал исключение. Я вообще нифига не понял что ты написал сначала. Ну так в эксупшене посмотри трейсбэк, он там должен в одном из полей лежать
Поэтому есть учение про то, что исключения надо применять ооочень аккуратно. В исключения надо обёртывать только атомарные вещи и по минимуму. Грубо говоря в исключение запихиваешь флаг результата, а потом уже на основании флага можно делать большие процедурки
Это джанговский код. Там после одной из мидлаврь падает 404, но я вот не могу найти это место
Хмм.. Что то не увидел там. Щас повнимательный посмотрю
Еще есть учение про то, что надо исключения кидать не просто так, а через from. Сразу жизнь будет намного легче
Просто некоторые всё оборачивают в исключения, а потом бьются с поиском ошибок
У меня весь код в трай эксептах, поиск ошибок наоборот намного проще. Главное достаточно разных классов ошибок иметь, прокидывать через from и в логах выводить трейсбэки со всей инфой в extra
Пардон, что за флаг результата? Можно пример (хоть из интернета не суть)?
Я так понимаю, что это какие-то безумные вещи уровня foo_success = True try: foo() except: foo_success = False if foo_success: logger.info('Success foo') else: logger.error('Fail foo')
В точку! Получается система не перегружается накоплениями действий, ошибки легко можно найти, если они происходят. На больших проектах это очень нужная штука
Какие накопления, ты о чем вообще?
Что такое "флаг результата эксепшена"?
Обсуждают сегодня