Чтобы разобраться в try except, пройдись по пунктам.
Что это. Механизм обработки исключений: код, который может упасть, кладёшь в блок try, а обработку сбоя — в except.
Зачем это нужно. Без обработки любая ошибка вроде деления на ноль или неверного типа останавливает всю программу. С try except ты решаешь сам, что делать: вывести сообщение, записать в лог, попробовать снова.
Синтаксис. Строка try: дальше с отступом рискованный код. Строка except с именем исключения, например except ValueError: и дальше что делать при этой ошибке.
Указывай конкретный тип ошибки. Голый except без типа ловит вообще всё, включая опечатки в самом коде, и тогда баги прячутся, а не чинятся. Проверь у себя: если except ловит слишком много, сузь тип.
Несколько except подряд. Можно обработать разные ошибки по-разному: одна ветка для ValueError, другая для ZeroDivisionError.
Else и finally. Блок else выполняется, если ошибок не было. Блок finally выполняется всегда, даже если было исключение — туда кладут закрытие файла или соединения.
Не оставляй except пустым. Пустой except с pass прячет проблему, потом непонятно, откуда баг. Хотя бы выведи текст ошибки.
Проверка версии. Поведение исключений в целом одинаковое в python 3, но некоторые формулировки текста ошибок отличаются между версиями, так что если код старый — сверься с документацией под свою версию.
В сумме: оборачивай в try только то, что реально может сломаться, лови конкретные типы и не оставляй except пустым.
Лучший ответ
4.20
4.20
Как работает try except python?
try except — это страховка. Кладёшь опасный код в try, если он взрывается — управление уходит в except, и скрипт не падает. Пример: пробуешь int(input()), а там буквы. Без обработки — traceback и конец. С try except ловишь ValueError и выводишь своё сообщение, скрипт живёт дальше.