Поиск…


Вступление

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

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

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

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

Здесь мы создали пользовательское исключение, называемое CustomError, которое получено из класса Exception. Это новое исключение может быть поднято, как и другие исключения, с помощью оператора raise с дополнительным сообщением об ошибке.

class CustomError(Exception):
       pass

x = 1

if x == 1:
    raise CustomError('This is custom error')

Выход:

Traceback (most recent call last):
  File "error_custom.py", line 8, in <module>
    raise CustomError('This is custom error')
__main__.CustomError: This is custom error

Поймать обычное исключение

В этом примере показано, как поймать пользовательское исключение

class CustomError(Exception):
     pass

try:
    raise CustomError('Can you catch me ?')
except CustomError as e:
    print ('Catched CustomError :{}'.format(e))
except Exception as e:
    print ('Generic exception: {}'.format(e))

Выход:

Catched CustomError :Can you catch me ?


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow