Email or username:

Password:

Forgot your password?
Moana Rijndael 🍍🍕

Питон это весело

В программе происходит эксцепшон. Нигде не перехватывается, по идее должен всплыть наверх и крашнуть всю программу

Вместо этого эксцепшон теряется по дороге

И мне теперь придется искать, где :blobcatgooglyholdingitsheadinitshands:

29 comments
Galactic Jew 🇮🇱

@mo а питон то тут при чем? :-)

Moana Rijndael 🍍🍕

@GalacticJew потому что это происходит на питоне?

Galactic Jew 🇮🇱

@mo я бы поставил не на питон а на питонописаку :-) как найдете причину может поделитесь. но пролетарское чутье подсказывает что питон не виноват :-)

Moana Rijndael 🍍🍕

@GalacticJew питон очень поощряет кастовать черную магию, которую не берёт ни тайпчекер ни дебаггер

Galactic Jew 🇮🇱

@mo интересно в чем будет причина этого эксепшна, который сперва потерялся потом вроде нашёлся. надеюсь виновные будут наказаны в лесу :-)

Owl!🦉

@GalacticJew @mo

У программистов есть проблема - они тупые. Задача разработчика ЯП сделать так чтоб этот факт не сильно мешал.

Galactic Jew 🇮🇱

@lonelyowl @mo ну так давайте же пример самого успешного в этом плане языка :-)

Бука

@mo
> Питон это весело

Moana Rijndael 🍍🍕

Самое смешное, что IDE не ловит вылетающий эксцепшон, несмотря на установку "ловить всё, что появляется" :blobcatgooglyholdingitsheadinitshands:

Arkalair

@mo ничего не понятно, но очень интересно!

Бука

@mo прости, я опять с дурацкими иллюстрациями, на этот раз - для олдов:

oku_yama_old

@b000ka @mo Мне казалось, там чаще другая надпись была. Типа ЭЛЕКТРОНИКА без номера. Но возможно у первых был номер.
А Микки-Маус это исходник, карманная игра Nintendo, с которой содрано.

Бука

@oku_yama_old если верить сайту по ссылке выше, как раз у ранней версии 1984 года не было номера в названии на лицевой стороне, а у поздней, 1992, уже был.

@mo

oku_yama_old

@b000ka @mo Наверно у меня была ранняя.

oku_yama_old

@b000ka @mo А ещё во времена моего детства был такой мем: Всё в СССР, что не Красное чего-то там, называется Электроника 5.

Moana Rijndael 🍍🍕

Следите за руками. Есть loguru, у loguru есть декоратор catch

Он предназначен для того, чтобы автоматически и подробно логгировать ошибку в функции, вплоть до анализа стектрейса «на месте»

Казалось бы, логгер и логгер? Но у этого логгера есть параметр reraise. Если он установлен в False, то loguru автоматически подавит исключение

Окей, но ведь надо было просто не устанавливать его в False...?

А вот теперь самый сок: он установлен в False по умолчанию, и глушит исключения

Galactic Jew 🇮🇱

@mo а все почему? потому что «программисту так будет удобнее. он же не хочет обрабатывать эксепшна САМ. пусть добрый логгер сделает это за него» :-)

Moana Rijndael 🍍🍕

@GalacticJew а потом программист будет в ахуе, почему программа крашится, а тесты все зелёные

И потратит на поиски часов двадцать чистого рабочего времени

Galactic Jew 🇮🇱

@mo это напомнило мне мой любимый log.Fatalln в гошечке. помоему еще более забористая дрянь :-)

oku_yama_old

@mo Бдыщ вынос мозга! 🤯

MrClon

@mo где-то в коде притаился неспецифичный `except:`? Если понимаешь где происходит эксепшен, попробуй возбудить там что-то что с минимальной вероятностью будет «случайно» поймано, посмотри стэк вызова и смотри где там except есть. Ну или просто грепай все except-ы и разбирайся вручную. Хули, увы

Stas

@mo если обращение к какой-то сишной библиотеке внутри, то бывает тяжело "поймать", что идет не так.

Go Up