При программировании на любом языке, включая Python, работа с исключениями и ошибками часто становится необходимостью, когда вы имеете дело с большим количеством переменных. Иногда, вы просто не знаете, что окажется в вашем коде. Таким образом, вы планируете наперед и используете исключения и обработку ошибок в случае необходимости. Как правило, цель состоит в том, чтобы выполнить код, как задумано, но если происходит исключение, мы предпочли бы, чтобы Python не скинул свои собственные исключения. Вместо этого мы хотели бы сообщить пользователю, что что-то пошло не так, используя нашу формулировку.
Говоря об ошибках и исключениях, у вас возможно возникает вопрос: что они из себя представляют и как отличаются друг от друга? Исключениями являются как правило маленькие проблемки, с которыми вам вероятно всего захочется справится. Например, может быть, вы точно не знаете тип переменной, но вы определенно хотели бы с нею что-то сделать. Работа с числами довольно отличается от таковой со строками. Таким образом, вы можете создать что-то вроде этого:
Потрясающе! Мы можно сказать поймали за хвост исключение, которое нам выдал Питон. Мы ввели пробный код под блоком try. Однако, если произошло исключение (добавление строки в целое число и является исключением) мы даем команду Python, сделать все в блоке исключения.
Итак, что такое ошибки? Плохая новость, это то, что они есть. Как правило, вы не захотите заниматься ошибками, если вы не задумали какие-то опасные вещи. Когда возникает ошибка, это обычно означает, что Python взрывает корабль. Очевидно, что если судно тонет, мы должны прыгать с корабля и, соответственно, выйти из программы.
Кроме того, вы, возможно, заметили, что print() принимает в этом примере два аргумента . Правда, это может занять столько аргументов, сколько вы захотите. print() будет продолжать печатать все ваши аргументы с пространством между ними.
Давайте посмотрим правде в глаза наши try/except, не сильно упрощает использование программы. В принципе, если что-то идет не так, он просто говорит нашим пользователям, что не так. Какой в этом смысл? Мы должны работать с исключениями в такой манере, чтобы программа могла продолжать двигаться дальше. Лучшей альтернативой было бы что-то вроде этого:
Гораздо лучше! В этом примере мы использовали except, чтобы поймать исключение. Но, если вы запустите пример, вы увидите, что происходит что-то более интересное. На самом деле мы поймали исключение и сказали Питону, “Ну, попробуй впихнуть в целое число, прежде чем добавить”. Питон честно исполнил и в качестве конечного результата вывел номер 2.