и посмотреть медиа
Код на салфетке - Python кодинг
и посмотреть медиа
Канал о программировании на Python и других языках. Простые объяснения и коды.
Канал о программировании на Python и других языках. Простые объяснения и коды.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Ресурс для интересующихся программированием. Фокус на Python, но охватывает и другие темы. Простые примеры и разборы.
Знаете ли вы, что return внутри finally подавляет исключение из try? Python всегда выполняет finally: и после успешного return, и после исключения. Но если finally сам содержит return, break или continue – управление уходит по этому пути, а исключение из try просто отбрасывается без traceback. def divide(a, b): try: return a / b finally: return -1 print(divide(10, 0)) # -1 – ZeroDivisionError просто исчез ZeroDivisionError действительно возникает внутри try. Но finally перехватывает управление своим return -1 раньше, чем исключение успевает подняться выше и функция возвращает -1, как будто ничего не случилось. def divide(a, b): try: return a / b finally: print("cleanup") divide(10, 0) # cleanup # Traceback (most recent call last): # ... # ZeroDivisionError: division by zero Без return в finally поведение обычное: cleanup отрабатывает, а исключение летит дальше – разница только в одном операторе. def process(items): for item in items: try: if item < 0: raise ValueError(item) finally: break return "done" print(process([-1, -2, -3])) # done – ValueError из первой итерации потерян break и continue в finally работают так же, как return – любой из них обрывает обработку исключения. Документация Питона прямо говорит, что если finally выполняет break, continue или return, сохраненное исключение не поднимается повторно. finally гарантированно выполнится, но не гарантирует, что исключение из try дойдет до вызывающего кода. return, break или continue внутри finally – способ молча проглотить баг, который потом еще и по логам не найдется. Код на салфетке x Кусочки кода
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!