Szukaj…


Wprowadzenie

Python ma wiele wbudowanych wyjątków, które zmuszają twój program do wyświetlania błędu, gdy coś w nim pójdzie nie tak.

Czasami jednak może być konieczne utworzenie niestandardowych wyjątków, które spełniają Twoje zadanie.

W Pythonie użytkownicy mogą zdefiniować takie wyjątki, tworząc nową klasę. Ta klasa wyjątków musi pochodzić, bezpośrednio lub pośrednio, z klasy wyjątków. Większość wbudowanych wyjątków pochodzi również z tej klasy.

Wyjątek niestandardowy

Tutaj stworzyliśmy zdefiniowany przez użytkownika wyjątek o nazwie CustomError, który pochodzi z klasy Exception. Ten nowy wyjątek można zgłaszać, podobnie jak inne wyjątki, za pomocą instrukcji raise z opcjonalnym komunikatem o błędzie.

class CustomError(Exception):
       pass

x = 1

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

Wynik:

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

Złap niestandardowy wyjątek

Ten przykład pokazuje, jak złapać niestandardowy wyjątek

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))

Wynik:

Catched CustomError :Can you catch me ?


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow