Podstawy obsługi wyjątków cz.2

Oczywiście możemy także stosować składnię, w której opis wyjątku jest przypisywany do zmiennej i możemy go potem wyświetlić w procedurze obsługi np.

except NameError as e:
    print('Message:', e)

Można tworzyć wspólną procedurę obsługi dla kilku wyjątków umieszczając nazwy klas w krotce np.

except (ZeroDivisionError, NameError):
    # Tutaj umieszczamy procedurę obsługi tych dwóch wyjątków

Na co należy zwrócić uwagę to aby wyjątki stanowiące klasy potomne w hierarchii klas wyjątków były obsługiwane przed klasami z których dziedziczą. Błędna kolejność będzie skutkować tym, że wyjątek obsłuży bardziej ogólna procedura, która była pierwsza w kolejności tzn.

except Exception:
    print('It catches all exceptions!')
except NameError:
    print('NameError exception')

W powyższym przykładzie wyjątek NameError zostanie obsłużony przez procedurę zawartą w pierwszym bloku except. Pomimo wystąpienia wyjątku NameError zostanie wyświetlony napis: It catches all exceptions!, a procedura obsługująca konkretnie ten wyjątek (i wyświetlająca w tym przypadku napis NameError exception) nie zostanie wykonana.

>>Część trzecia<<

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *