Wypróbuj Pythona z wyjątkiem
Blok try
pozwala przetestować blok kodu pod kątem błędów.
Blok except
pozwala obsłużyć błąd.
Blok else
umożliwia wykonanie kodu, gdy nie ma błędu.
Blok finally
pozwala na wykonanie kodu, niezależnie od wyniku bloków try- iexcept.
Obsługa wyjątków
Gdy wystąpi błąd lub wyjątek, jak go nazywamy, Python zwykle zatrzymuje się i generuje komunikat o błędzie.
Te wyjątki można obsłużyć za pomocą try
instrukcji:
Przykład
Blok try
wygeneruje wyjątek, ponieważ x
nie jest zdefiniowany:
try:
print(x)
except:
print("An exception occurred")
Ponieważ blok try zgłasza błąd, zostanie wykonany blok z wyjątkiem.
Bez bloku try program zawiesi się i zgłosi błąd:
Przykład
To stwierdzenie wywoła błąd, ponieważ x
nie jest zdefiniowane:
print(x)
Wiele wyjątków
Możesz zdefiniować dowolną liczbę bloków wyjątków, np. jeśli chcesz wykonać specjalny blok kodu dla specjalnego rodzaju błędu:
Przykład
Wydrukuj jedną wiadomość, jeśli blok try podnosi a, NameError
a drugi dla innych błędów:
try:
print(x)
except NameError:
print("Variable x
is not defined")
except:
print("Something else went
wrong")
W przeciwnym razie
Możesz użyć else
słowa kluczowego, aby zdefiniować blok kodu, który ma zostać wykonany, jeśli nie zgłoszono żadnych błędów:
Przykład
W tym przykładzie try
blok nie generuje żadnego błędu:
try:
print("Hello")
except:
print("Something went
wrong")
else:
print("Nothing went wrong")
Wreszcie
Blok finally
, jeśli zostanie określony, zostanie wykonany niezależnie od tego, czy blok try zgłosi błąd, czy nie.
Przykład
try:
print(x)
except:
print("Something went
wrong")
finally:
print("The 'try except' is finished")
Może to być przydatne do zamykania obiektów i czyszczenia zasobów:
Przykład
Spróbuj otworzyć i zapisać plik, do którego nie można zapisywać:
try:
f = open("demofile.txt")
try:
f.write("Lorum Ipsum")
except:
print("Something went wrong when writing to the file")
finally:
f.close()
except:
print("Something went wrong when opening the
file")
Program może kontynuować pracę bez pozostawiania otwartego obiektu pliku.
Podnieś wyjątek
Jako programista Pythona możesz zgłosić wyjątek, jeśli wystąpi warunek.
Aby zgłosić (lub zgłosić) wyjątek, użyj raise
słowa kluczowego.
Przykład
Zgłoś błąd i zatrzymaj program, jeśli x jest mniejsze od 0:
x = -1
if x < 0:
raise Exception("Sorry, no numbers below
zero")
Słowo raise
kluczowe służy do zgłaszania wyjątku.
Możesz zdefiniować rodzaj błędu, który ma zostać zgłoszony, oraz tekst, który ma zostać wydrukowany użytkownikowi.
Przykład
Podnieś TypeError, jeśli x nie jest liczbą całkowitą:
x = "hello"
if not type(x) is int:
raise TypeError("Only
integers are allowed")