8 советов как ЛУЧШЕ писать исключения на Python

preview_player
Показать описание

В данном видео рассмотрим 8 ошибок при написании исключений на Python, и на основе этих ошибок получим правильную реализацию.

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

Тайм-коды:
0:00 - Что будет в видео?
0:59 - Первая ошибка, которая может убить ваш проект
4:27 - Почему нельзя поднимать исключение от Exception?
5:48 - Как заглушить ошибки без except pass?
6:53 - Можно ли игнорировать блок Exception?
7:18 - Данная ошибка будет скрывать все исключения
8:33 - Как иерархия исключений может создать баги в проекте?
10:03 - Манипуляция стектрейсом через raise from
12:12 - Бонус. Способ затроллить разработчиков
Рекомендации по теме
Комментарии
Автор

Самый недооценённый канал.
Но он скоро стрельнет, в сфере ит.
Спасибо дал мне инфы, которая решила мою проблему, долго ломал над ней голову.
Успехов твоему каналу подписался !🎉

gardenspecial
Автор

Спасибо за excepthook, очень долго искал реализацию exception handler в python, но так ничего и не находил, до этого дня. Еще раз, спасибо)

hoopengo
Автор

Можно использовать:
try:
#code
except Exception as _ex:
print('error', _ex)

usakabi
Автор

Вы забыли самый главный совет при написании исключений - не писать исключения). Исключения считаются антипаттерном, т.к. для того, чтобы их поймать, нужно запустить определённый блок кода. Соответственно, при возникновении ошибки, этот блок отработает "вхолостую". Более того, многочисленное перехватывание нескольких исключений в одном блоке, показанное в первом примере, может разрастаться до нереальных размеров (вплоть до 10-20 экзептов). Тем более, если речь идёт о собственных типах исключений. В любом случае, нужно стараться использовать блоки if/else, в качестве декораторов и оборачивать ими функции или методы. Это особенно удобно при валидации пользовательского ввода. Таким образом, мы выявим ошибку до вызова кода и предотвратим потерю времени. Конкретно try/except нужно использовать в тех случаях, где нам всё же необходимо выполнить код, для того, чтобы выявить исключение. К примеру, при общении с API сайта, либо запросах к базе данных.

probro-cwrt
Автор

Каша из слов, Информационная составляющая хорошая, но для понимания просто каша из слов, Нет пауз между блоками про ошибки, все сливается и не понятно, относится это к прошлому блоку или к текущему. Ваше повествование это просто ужас для понимания. Зачем так гнаться? Вы хотя бы внятные паузы между словами делали бы, а то выходит бесконечно слипшийся монолог. Из-за этого подданная информация сложна для понимания. Но сами ситуации поучительны.

rydn
Автор

Очень крутое видео! Спасибо за классные и полезные ролики

robertproductsrp
Автор

Смотрю у тебя VSCode на линуксе? Лучше чем Pycharm? Если так, подскажи пожалуйста, какие + у VSCode по сравнению с Pycharm

ГубкаБоб-ръ
Автор

Как правильно поступить, если в нескольких функциях класса прописывать однотипные исключения? Происходит дублирование одинаковых строк кода. Может в таком случае их вынести в отдельную функцию?

КонстантинАбашин-хы
Автор

я пользую что-то типа такого..
except Exception as err: print(f"Mark_01: {err}"
ну то есть вообще не всегда понимаю, какой вообще эксепшн могу поймать...

Alpha_Gamma_Beta
Автор

Сколько раз за видео автор сказал слово ошибка?

xzoz
Автор

А как называется тема для vscode? Красивая

robertproductsrp
Автор

Кипит... Нтхрена не понял, чото останется, ексептхук мб, круто, спасибо

farpurple