Обработка нескольких исключений
Часть раздела Logic & Flow путешествия по Python на Coddy. Урок 65 из 78.
В Python мы можем обрабатывать разные типы exceptions в отдельных блоках except. Это позволяет нам реагировать по-разному в зависимости от конкретной error, которая возникает.
Начните с базовой структуры try-except:
try:
# Код, который может вызвать исключения
pass
except Exception as e:
# Обработать любое исключение
passЧтобы обработать несколько exceptions, добавьте отдельные блоки 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 имеет значение — всегда размещай более специфичные exceptions перед более общими.
Задание
ЛегкоСоздай функцию с именем process_data, которая:
- Принимает string input, представляющий потенциальные данные
- Пытается convert его в integer, затем вычисляет 100 divided на это целое число
- Возвращает result
- Обрабатывает как минимум 3 возможных exceptions:
ValueError, если input cannot быть convert в integer (выводит "Input must be a number!")ZeroDivisionError, если input равен 0 (выводит "Cannot divide by zero!")- Любое другое exception с помощью общего обработчика (выводит "An unexpected error occurred!")
Попробуйте сами
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Обработка нескольких исключенийПовторение: ошибки в корзине покупокПотренируйтесь самостоятельно: Онлайн-компилятор Python