Try & Except

Konstrukcja tryexcept 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. tryexcept pozwala na kontrolowane przechwytywanie i obsługę tych wyjątków, aby program nie przestał działać całkowicie.

Ogólna struktura tryexcept 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:

  1. try blok: 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 bloku except.
  2. except blok: Wewnątrz tego bloku umieszczasz kod, który ma zostać wykonany w przypadku, gdy zostanie zgłoszony wyjątek. ExceptionType to typ wyjątku, który chcesz obsłużyć. Możesz podać konkretny typ wyjątku, np. ValueError, TypeError, ZeroDivisionError, lub użyć ogólnego Exception, 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 else zostanie wykonany tylko wtedy, gdy nie wystąpi żaden wyjątek.
  • Blok finally zawsze zostanie wykonany, niezależnie od tego, czy wystąpił wyjątek czy nie.