Рубрики
Без рубрики

Исключения в Python

Я пишу контент для AWS, Kubernetes, Python, JavaScript и многое другое. Чтобы просмотреть весь последний контент, будьте … отмечены начинающими, Python, 100daysofpython.

Я пишу контент для AWS, Kubernetes, Python, JavaScript и многое другое. Чтобы просмотреть весь последний контент, обязательно Посетите мой блог и подписаться на мою рассылку. Подпишись на меня в Твиттере .

Это 15 -й день из #100daysofpythonlon Challenge.

Этот пост будет рассмотреть домашние исключения, спасенные и продемонстрируют, как справиться с различными поднятыми исключениями.

Предварительные условия

  1. Знакомство с Pipenv Анкет Смотрите здесь за мой пост на Pipenv.
  2. Знакомство с Jupyterlab Анкет Смотрите здесь Для моего поста на Jupyterlab.

Начиная

Давайте создадим Hello-Python-Exceptions каталог и установить подушку.

# Make the `hello-python-exceptions` directory
$ mkdir hello-python-exceptions
$ cd hello-python-exceptions

# Init the virtual environment
$ pipenv --three
$ pipenv install --dev jupyterlab

Теперь мы можем запустить сервер ноутбуков.

# Startup the notebook server
$ pipenv run jupyter-lab
# ... Server is now running on http://localhost:8888/lab

Сервер теперь будет запущен и работает.

Создание ноутбука

Однажды на http://localhost: 8888/lab , выберите, чтобы создать новую ноутбук Python 3 из запуска.

Убедитесь, что этот ноутбук сохранен в Hello-Python-Exceptions/Docs/ Анкет

Мы создадим четыре ячейки для обработки четырех частей этого мини -проекта:

  1. Демонстрация о том, как Попробуйте/кроме работает.
  2. Глядя на повышение ошибки из функции.
  3. Создание и использование пользовательских ошибок.

Попробуйте/кроме

Мы можем использовать Попробуйте/кроме оператор для обработки ошибок. Ты поднять а Исключение Всякий раз, когда вы хотите бросить ошибку из кодового блока.

Исключение Самостоятельно может быть делегирован выше цепочки кода для обработки.

Например, если мы выполним это в нашем первом блоке кода jupyterlab:

try:
  raise Exception('You shall not pass')
  print('Success')
except:
  print('There was an issue')

Мы замечаем, что вывод Была проблема Анкет Мы не делаем это пройденным исключением.

Мы также можем запечатлеть исключения по их типу. Например, если мы выполним это во втором блоке кода jupyterlab:

try:
  raise Exception('You shall not pass')
  print('Success')
except Exception:
  print('Did not make it to final catch-all block')
except:
  print('There was an issue')

Вы заметите, что 'Не добрался до окончательного блока с улавливанием' был захвачен и напечатан, где как финал кроме Кодовый блок используется All All.

Увеличение ошибки из функции

Определение функции, которая повышает ошибку, пройдет вверх по блоку кода до верхнего уровня.

def example_exception():
  raise Exception('You shall not pass')

def example_fn():
  example_exception()

try:
  example_fn()
except:
  print('There was an issue')

Это также распечатывает «Была проблема» Анкет

Создание и использование пользовательских ошибок

Мы можем создавать пользовательские ошибки, просто определив класс, который расширяет Исключение Анкет

class CustomError(Exception):
    """Custom error"""
    pass

Мы можем видеть это в действии, работая случайным образом, когда используем RandRange функционируйте как помощник, чтобы определить, какую ошибку поднять:

from random import randrange

# define Python user-defined exceptions
class CustomError(Exception):
    """Raised when using a custom error"""
    pass

def example_exception():
  val = randrange(10)
  if val <= 5:
    raise CustomError('You shall not pass')
  else:
    raise Exception("There was an error")

try:
  example_exception()
except CustomError as e:
  print(e)
except Exception as e:
  print(e)

Запуск этого кода в блоке распечатает 'Вы не будете проходить' или «Была ошибка» на основе случайного значения.

Это означает, что наш Customerror обрабатывается в кроме Customerror как e блокировать.

Резюме

Сегодняшний пост продемонстрировал, как создать пользовательские ошибки путем расширения Исключение и демонстрировать, как ошибки выращиваются простым образом.

Управление ошибками в Python является необходимостью при работе с более сложным кодом, который требует более мелкозернистого контроля над возможными результатами ошибок.

Ресурсы и дальнейшее чтение

  1. ABCS Pipenv
  2. Привет, jupyterlab
  3. Пипенв
  4. Исключения Python – введение
  5. Пользовательские исключения в Python

Кредит фото: Фристоки

Первоначально опубликовано на моем блог . Чтобы увидеть новые сообщения без промедления, прочитайте сообщения там и подпишитесь на мою рассылку.

Оригинал: “https://dev.to/okeeffed/exceptions-in-python-263”