Рубрики

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

Предварительное условие — эта статья является расширением обработки исключений.

Python генерирует ошибки и исключения, когда происходит сбой кода, что может привести к внезапной остановке программы. Python также предоставляет метод обработки исключений с помощью try-exc. Некоторые из стандартных исключений, которые являются наиболее частыми, включают IndexError, ImportError, IOError, ZeroDivisionError, TypeError и FileNotFoundError. Пользователь может создать свою собственную ошибку, используя класс исключений.

Создание пользовательского исключения

Программисты могут называть свои собственные исключения, создавая новый класс исключений. Исключения должны быть получены из класса Exception, прямо или косвенно. Хотя это и не обязательно, большинство исключений именуются как имена, оканчивающиеся на «Ошибка», аналогично именованию стандартных исключений в python. Например:

# Python-программа для создания пользовательских исключений

  
# class MyError является производным от исключений суперкласса

class MyError(Exception):

  

    # Конструктор или инициализатор

    def __init__(self, value):

        self.value = value

  

    # __str__ должен напечатать () значение

    def __str__(self):

        return(repr(self.value))

  

try:

    raise(MyError(3*2))

  
# Значение исключения хранится в ошибке

except MyError as error:

    print('A New Exception occured: ',error.value)

Выход:

('A New Exception occured: ', 6)

Зная все об исключительном классе

Чтобы узнать больше о классе Exception, запустите код ниже

help(Exception)

Ошибка получения из исключения Super Class

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

# class Ошибка выводится из Исключения суперкласса

class Error(Exception):

  

    # Ошибка является производным классом для исключения, но

    # Базовый класс для исключений в этом модуле

    pass

  

class TransitionError(Error):

  

    # Возникает, когда операция пытается состояние

    # переход, который не разрешен.

    def __init__(self, prev, nex, msg):

        self.prev = prev

        self.next = nex

  

        # Сгенерированное сообщение об ошибке сохраняется в сообщении

        self.msg = msg

try:

    raise(TransitionError(2,3*2,"Not Allowed"))

  
# Значение исключения хранится в ошибке

except TransitionError as error:

    print('Exception occured: ',error.msg)

Выход:

('Exception occured: ', 'Not Allowed')

Как использовать стандартные исключения в качестве базового класса?

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

# NetworkError имеет базовый RuntimeError
# а не исключение

class Networkerror(RuntimeError):

    def __init__(self, arg):

        self.args = arg

  

try:

    raise Networkerror("Error")

  

except Networkerror as e:

    print (e.args)

Выход:

('E', 'r', 'r', 'o', 'r')

Эта статья предоставлена Пиюшем Доорваром . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

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

0.00 (0%) 0 votes