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

Пользовательские исключения в Python

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

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

Что такое исключение?

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

Вы можете попробовать это в корпусе Python, набрав Поднять исключение («Ваше сообщение») Отказ

➜  ~ python3
Python 3.7.5 (default, Nov 20 2019, 09:21:52) 
[GCC 9.2.1 20191008] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> raise Exception("No can do")
Traceback (most recent call last):
  File "", line 1, in 
Exception: No can do
>>> 

Все встроенные исключения используют Исключение сорт. Определенные пользователем исключения должны быть получены из этого класса ( Унаследовано ).

Пользовательское исключение

Показанная ниже программа создает пользовательское исключение HappyError что наследует от Исключение сорт.

class HappyError(Exception):
    pass

raise HappyError("To happy to run")

Вышеуказанная программа затем повышает HappyError исключение:

➜  ~ python3 program.py
Traceback (most recent call last):
  File "t.py", line 5, in 
    raise HappyError("To happy to run")
__main__.HappyError: To happy to run

Многие модули определяют свои собственные исключения.

При желании вы можете переопределить Конструктор так:

class ValidationError(Exception):
    def __init__(self, message, errors):

        # Call the base class constructor with the parameters it needs
        super().__init__(message)

        # Now for your custom code...
        self.errors = errors

Но с исключениями Python 3 вам не нужно преодолеть все. Если все, что вы хотите, это информативное сообщение для вашего исключения, сделайте это:

class MyException(Exception):
    pass

raise MyException("My car is swimming")

Оригинал: “https://dev.to/bluepaperbirds/custom-exceptions-in-python-787”