Try & Except
Konstrukcja try…except jest używana w języku Python do obsługi wyjątków. Wyjątki to sytuacje, które mogą wystąpić w trakcie wykonywania programu i mogą zaburzyć normalny przepływ kodu. try…except pozwala na kontrolowane przechwytywanie i obsługę tych wyjątków, aby program nie przestał działać całkowicie.
Ogólna struktura try…except wygląda następująco:
try:
# Kod, który potencjalnie może wywołać wyjątek
except ExceptionType:
# Kod do wykonania, jeśli wystąpi wyjątek typu ExceptionType
Główne punkty do zrozumienia:
tryblok: Wewnątrz tego bloku umieszczasz kod, który chcesz wykonać, ale który może generować wyjątki. W przypadku wystąpienia wyjątku, wykonanie kodu w tym bloku zostanie przerwane, a kontrola zostanie przekazana do blokuexcept.exceptblok: Wewnątrz tego bloku umieszczasz kod, który ma zostać wykonany w przypadku, gdy zostanie zgłoszony wyjątek.ExceptionTypeto typ wyjątku, który chcesz obsłużyć. Możesz podać konkretny typ wyjątku, np.ValueError,TypeError,ZeroDivisionError, lub użyć ogólnegoException, który będzie pasował do wszystkich wyjątków.
Przykład:
try:
liczba = int(input("Podaj liczbę całkowitą: "))
wynik = 10 / liczba
print("Wynik:", wynik)
except ZeroDivisionError:
print("Nie można dzielić przez zero!")
except ValueError:
print("To nie jest poprawna liczba całkowita.")
except Exception as e:
print("Wystąpił błąd:", e)
else:
print("Wykonuje się tylko wtedy, gdy nie wystąpił żaden wyjątek.")
finally:
print("Ten blok zostanie wykonany bez względu na to, czy wystąpił wyjątek.")
W tym przykładzie:
- Jeśli użytkownik wprowadzi zero jako liczbę, to pojawi się wyjątek
ZeroDivisionError. - Jeśli użytkownik wprowadzi coś, co nie jest liczbą całkowitą, pojawi się wyjątek
ValueError. - Jeśli wystąpi inny wyjątek, zostanie obsłużony przez ogólny blok
except. - Blok
elsezostanie wykonany tylko wtedy, gdy nie wystąpi żaden wyjątek. - Blok
finallyzawsze zostanie wykonany, niezależnie od tego, czy wystąpił wyjątek czy nie.
