Обработка нескольких исключений
Часть раздела Logic & Flow путешествия по Python на Coddy — урок 65 из 78.
В Python мы можем обрабатывать различные типы исключений в отдельных блоках except. Это позволяет нам реагировать по-разному в зависимости от конкретной возникшей ошибки.
Начните с базовой структуры try-except:
try:
# Код, который может вызвать исключения
pass
except Exception as e:
# Обработка любого исключения
passЧтобы обработать несколько исключений, добавьте соответствующие блоки except:
try:
number = int(input("Enter a number: "))
result = 10 / number
print(result)
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")Вы также можете перехватывать несколько типов исключений в одном блоке except:
try:
# Некоторый код
pass
except (ValueError, TypeError):
print("Invalid input type!")Порядок блоков except имеет значение — всегда располагайте более специфичные исключения перед более общими.
Задание
ЛегкоСоздайте функцию с именем process_data, которая:
- Принимает строковый ввод, представляющий потенциальные данные
- Пытается преобразовать его в целое число, затем вычисляет результат деления 100 на это целое число
- Возвращает результат
- Обрабатывает как минимум 3 возможных исключения:
ValueError, если ввод не может быть преобразован в целое число (выводит "Input must be a number!")ZeroDivisionError, если ввод равен 0 (выводит "Cannot divide by zero!")- Любое другое исключение с помощью общего обработчика (выводит "An unexpected error occurred!")
Шпаргалка
Обрабатывайте различные типы исключений, используя несколько блоков except:
try:
number = int(input("Enter a number: "))
result = 10 / number
print(result)
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")Перехватывайте несколько типов исключений в одном блоке except:
try:
# Некоторый код
pass
except (ValueError, TypeError):
print("Invalid input type!")Всегда располагайте более специфичные исключения перед более общими в порядке следования блоков except.
Попробуйте сами
def process_data(input_string):
try:
# Попытка преобразовать входную строку в целое число
# Вычислить 100, деленное на входное значение
# Вернуть результат
except ValueError:
# Обработка случая, когда ввод не может быть преобразован в целое число
except ZeroDivisionError:
# Обработка случая, когда ввод равен нулю
except:
# Обработка любых других непредвиденных исключений
return NoneВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Logic & Flow
1Изучение переменных
КонстантыМножественное присваиваниеОбмен значениями переменныхПеременные-заполнителиОкругление чиселПриведение к списку4Приложение «Книга контактов»
Показать менюДобавить контакт7Множества. Часть 2
Математические операции. Часть 1Математические операции. Часть 2Повторение — Охота за сокровищамиПодмножества и надмножестваИтерация по множествамПовторение — Трекер турнира10Базовые генераторы списков
СинтаксисСоздание простых списковДобавление условийИспользование агрегации данныхПовторение — Дом списковПовторение — Элементы свободы13Система управления запасами
Обзор проектаДобавление товара2Словари. Часть 1
Что такое словарь?Создание словаряДоступ к значениямИзменение словарейИтоги — Менеджер рецептов5Продвинутое принятие решений
Тернарный операторПроверка вхожденияПроверка идентичностиОшибки отступовПовторение — Фильтр отпусков8Менеджер записей студентов
Обзор проектаДобавить студента11Продвинутые функции
Возврат нескольких значенийLambda-функции. Часть 1Lambda-функции. Часть 2Задача на повторение — Lambda-сортировкаРекурсивные функции. Часть 1Рекурсивные функции. Часть 2Повторение — сумма вложенного списка14Функции высшего порядка
Функция mapФункция filterПовторение — Валидатор emailПовторение — Обработчик чисел3Словари. Часть 2
Методы словарейВложенные словариПроверка наличия ключейПеребор словарей в циклеПовторение: счетчик частоты6Множества. Часть 1
Что такое множество?Основные операцииМетоды множествПовторение — удаление дубликатов9Продвинутая агрегация данных
Использование SumПоиск минимума и максимумаЭффективная сортировка данныхПовторение — Dictionary Sorter12Основы обработки ошибок
Что такое обработка ошибок?Блок Try и ExceptОбработка нескольких исключенийПовторение: ошибки в корзине покупок