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

  Рет қаралды 18,814

ZProger [ IT ]

ZProger [ IT ]

Күн бұрын

⭐ Курс ООП и Приват канал: www.zproger-school.com/?...
⭐ Телеграм канал: t.me/codeblog8
⭐ Исходный код: t.me/codeblog8/189
В данном видео рассмотрим 8 ошибок при написании исключений на Python, и на основе этих ошибок получим правильную реализацию.
Данные проблемы часто встречаются в чужом коде, и они могут привести к огромным багам, если реализовать обработку исключений неправильно.
📁 Github: github.com/Zproger
📁 Все плейлисты с уроками: bit.ly/39GaY89
📁 Связаться со мной: zproger777@gmail.com
📁 Поддержать канал: github.com/Zproger/donate
Тайм-коды:
0:00 - Что будет в видео?
0:59 - Первая ошибка, которая может убить ваш проект
4:27 - Почему нельзя поднимать исключение от Exception?
5:48 - Как заглушить ошибки без except pass?
6:53 - Можно ли игнорировать блок Exception?
7:18 - Данная ошибка будет скрывать все исключения
8:33 - Как иерархия исключений может создать баги в проекте?
10:03 - Манипуляция стектрейсом через raise from
12:12 - Бонус. Способ затроллить разработчиков
13:15 - 1000 лайков == (python.skills ** 20)

Пікірлер: 29
@Dmitrii-Zhinzhilov
@Dmitrii-Zhinzhilov Жыл бұрын
ZProger, благодарю! Высший класс! 🔥🔥
@zproger
@zproger Жыл бұрын
Спасибо!
@hoopengo2289
@hoopengo2289 Жыл бұрын
Спасибо за excepthook, очень долго искал реализацию exception handler в python, но так ничего и не находил, до этого дня. Еще раз, спасибо)
@gardenspecial7088
@gardenspecial7088 Жыл бұрын
Самый недооценённый канал. Но он скоро стрельнет, в сфере ит. Спасибо дал мне инфы, которая решила мою проблему, долго ломал над ней голову. Успехов твоему каналу подписался !🎉
@zproger
@zproger Жыл бұрын
Благодарю! Я рад что мой контент помог вам
@probro-cw9rt
@probro-cw9rt Жыл бұрын
Вы забыли самый главный совет при написании исключений - не писать исключения). Исключения считаются антипаттерном, т.к. для того, чтобы их поймать, нужно запустить определённый блок кода. Соответственно, при возникновении ошибки, этот блок отработает "вхолостую". Более того, многочисленное перехватывание нескольких исключений в одном блоке, показанное в первом примере, может разрастаться до нереальных размеров (вплоть до 10-20 экзептов). Тем более, если речь идёт о собственных типах исключений. В любом случае, нужно стараться использовать блоки if/else, в качестве декораторов и оборачивать ими функции или методы. Это особенно удобно при валидации пользовательского ввода. Таким образом, мы выявим ошибку до вызова кода и предотвратим потерю времени. Конкретно try/except нужно использовать в тех случаях, где нам всё же необходимо выполнить код, для того, чтобы выявить исключение. К примеру, при общении с API сайта, либо запросах к базе данных.
@k0chi190
@k0chi190 Жыл бұрын
Нет, исключения используются в настоящем паттерне EAFP, потому что в некоторых случаях гораздо проще поймать ошибку и как-то на это отреагировать, нежели предотвратить вообще появление любых ошибок
@usakabi3843
@usakabi3843 Жыл бұрын
Можно использовать: try: #code except Exception as _ex: print('error', _ex)
@ryd33n
@ryd33n Жыл бұрын
Каша из слов, Информационная составляющая хорошая, но для понимания просто каша из слов, Нет пауз между блоками про ошибки, все сливается и не понятно, относится это к прошлому блоку или к текущему. Ваше повествование это просто ужас для понимания. Зачем так гнаться? Вы хотя бы внятные паузы между словами делали бы, а то выходит бесконечно слипшийся монолог. Из-за этого подданная информация сложна для понимания. Но сами ситуации поучительны.
@zproger
@zproger Жыл бұрын
Спасибо, учту. В этом видео было много фейлов, поэтому когда их вырезал то получилось так как есть
@Dem0nek
@Dem0nek Жыл бұрын
Я, смотрящий это видео в 2х и улавливающий суть: *Подавился энергетиком
@Gora_NaSoS
@Gora_NaSoS Жыл бұрын
Страшно, нам просто страшно...
@robertproductsrp473
@robertproductsrp473 Жыл бұрын
Очень крутое видео! Спасибо за классные и полезные ролики
@zproger
@zproger Жыл бұрын
Благодарю! Для меня это служит хорошей мотивацией
@user-it3yo1sn6i
@user-it3yo1sn6i Жыл бұрын
Смотрю у тебя VSCode на линуксе? Лучше чем Pycharm? Если так, подскажи пожалуйста, какие + у VSCode по сравнению с Pycharm
@zproger
@zproger Жыл бұрын
Не то чтобы лучше, просто в видео смотрится более удачно. А так используя и то и другое
@user-gw8gi7jt3y
@user-gw8gi7jt3y Жыл бұрын
Как правильно поступить, если в нескольких функциях класса прописывать однотипные исключения? Происходит дублирование одинаковых строк кода. Может в таком случае их вынести в отдельную функцию?
@dima.kasper
@dima.kasper Жыл бұрын
Или воспользоваться декоратором
@robertproductsrp473
@robertproductsrp473 Жыл бұрын
А как называется тема для vscode? Красивая
@zproger
@zproger Жыл бұрын
Dracula
@Alpha_Gamma_Beta
@Alpha_Gamma_Beta Жыл бұрын
я пользую что-то типа такого.. except Exception as err: print(f"Mark_01: {err}" ну то есть вообще не всегда понимаю, какой вообще эксепшн могу поймать...
@user-xz5oz
@user-xz5oz Жыл бұрын
Сколько раз за видео автор сказал слово ошибка?
@zproger
@zproger Жыл бұрын
10^80 раз
@farpurple
@farpurple Жыл бұрын
Кипит... Нтхрена не понял, чото останется, ексептхук мб, круто, спасибо
@zproger
@zproger Жыл бұрын
Пожалуйста :)
@terpiIa
@terpiIa Жыл бұрын
thirtysix
@zproger
@zproger Жыл бұрын
:)
Как выучить Python БЫСТРО используя ChatGPT?
10:10
Please be kind🙏
00:34
ISSEI / いっせい
Рет қаралды 82 МЛН
⬅️🤔➡️
00:31
Celine Dept
Рет қаралды 37 МЛН
СНЕЖКИ ЛЕТОМ?? #shorts
00:30
Паша Осадчий
Рет қаралды 7 МЛН
Её Старший Брат Настоящий Джентельмен ❤️
00:18
Глеб Рандалайнен
Рет қаралды 8 МЛН
Логирование: оставь print позади
38:01
Python Russian
Рет қаралды 20 М.
Всё об исключениях и работе с ними в Python
30:34
Диджитализируй!
Рет қаралды 49 М.
ДЕКОРАТОР PYTHON / ВСЕ ЧТО НУЖНО ЗНАТЬ НА СОБЕСЕ
28:31
Сергей Соловьев
Рет қаралды 1,8 М.
10 признаков того, что вы новичок в Python
4:59
Please be kind🙏
00:34
ISSEI / いっせい
Рет қаралды 82 МЛН