SAMOUCZEK JĘZYKA PYTHON ROZDZIAŁY   
Rozdział 7: Błędy i wyjątki

1: Błędy składni - 2: Wyjątki - 3: Obsługa wyjątków - 4: Zgłaszanie wyjątków
5: Wyjątki definiowane przez użytkownika - 6: Jak posprzątać po bałaganiarzu?

Lekcja 2: Wyjątki


Nawet gdy wyrażenie jest składniowo poprawne, może spowodować błąd podczas próby wykonania go. Błędy takie nazywane są wyjątkami i niekoniecznie muszą zakończyć program. Większość wyjątków nie jest obsługiwana przez programy i objawiają się w komunikatach o błędzie, jak poniżej:

>>> 10 * (1/0)
Traceback (innermost last):
  File "<stdin>", line 1, in ?
ZeroDivisionError: integer division or modulo
>>> 4 + kwiatek*3
Traceback (innermost last):
  File "<stdin>", line 1, in ?
NameError: kwiatek
>>> '2' + 2
Traceback (innermost last):
  File "<stdin>", line 1, in ?
TypeError: illegal argument type for built-in operation

(ZeroDivisionError: dzielenie całkowite lub operacja modulo)
(TypeError: nieprawidłowy typ argumentu operacji wbudowanej)


Pierwsza część komunikatu pokazuje kontekst, w jakim wyjątek się zdarzył, w postaci śladu ze stosu wywołań. Ogólnie mówiąc, kontekst zawiera ślady wywołań w postaci wierszy kodu, aczkolwiek nie pokaże wierszy podchodzących ze standardowego wejścia.

Ostatnia linia komunikatu o błędzie pokazuje co się stało. Wyjątki są różnego typu, i ten typ wyświetlany jest jako część komunikatu. W powyższym przykładzie tymi typami są ZeroDivisionError, NameError i TypeError. Napis wyświetlany jako typ wyjątku jest nazwą wbudowanego w interpreter wyjątku, który się właśnie pojawił. Zachodzi to dla wszystkich wyjątków wbudowanych, lecz niekoniecznie jest to prawdą dla wyjątków zdefiniowanych przez użytkownika (jakkolwiek, jest to użyteczna konwencja). Nazwy standardowych wyjątków są wbudowanymi identyfikatorami, a nie zastrzeżonymi słowami kluczowymi.

Reszta wiersza komunikatu w szczegółach opisuje to, co się stało. Interpretacja i znaczenie tego opisu zależy od typu wyjątku.

Opis biblioteki Pythona wyszczególnia wszystkie wbudowane wyjątki i przedstawia ich znaczenie.

Strona główna - O Pythonie - Interpreter - Samouczek - Przykłady programów - Linki