Python:
Fouten afhandelen

Hoe:

# Basis try-except blok
try:
    # risicovolle code
    number = int(input("Voer een nummer in: "))
except ValueError:
    # afhandelen van fout
    print("Dat is geen nummer!")

# Meerdere uitzonderingen specificeren
try:
    # code die verschillende uitzonderingen kan veroorzaken
    result = 10 / int(input("Voer een deler in: "))
except ZeroDivisionError:
    print("Oeps! Kan niet delen door nul.")
except ValueError:
    print("Ik heb een nummer nodig, maatje.")

# Gebruik van else en finally
try:
    number = int(input("Voer een nummer in voor het kwadrateren: "))
except ValueError:
    print("Ik zei een nummer!")
else:
    # geen fouten opgetreden
    print("Jouw nummer kwadraat is:", number**2)
finally:
    # wordt altijd uitgevoerd
    print("Bedankt voor het proberen!")

Voorbeelduitvoer bij het invoeren van een ongeldig nummer voor het eerste blok:

Voer een nummer in: hallo
Dat is geen nummer!

Diepere Duik

Sinds de dageraad van het programmeren is foutafhandeling cruciaal geweest. Eerste benaderingen waren rudimentair, zoals het controleren van condities voor elke risicovolle operatie. Pythons try-except syntax komt uit een erfgoed van uitzonderingsafhandeling in oudere talen zoals C++ en Java, wat het proces vereenvoudigt.

Wanneer je een blok code probeert, let Python op eventuele uitzonderingen. Als er een fout optreedt, vangt het except blok deze. Je kunt specifiek zijn over de uitzonderingen die je vangt of ze allemaal vangen met een kale except. Echter, specifiek zijn is de betere aanpak - het is precies, geen vangnet dat alles opvangt.

else en finally zijn extra’s bij dit concept. Het else blok wordt uitgevoerd als het try-blok foutloos is. finally is de betrouwbare vriend die hoe dan ook uitgevoerd wordt - denk aan opruimoperaties.

Alternatieven? Die zijn er zeker. Sommige talen gebruiken retourcodes in plaats van uitzonderingen. Je kunt ook with-instructies tegenkomen voor het beheren van middelen of assertions die condities controleren tijdens de ontwikkeling. Maar als we het hebben over solide strategieën voor foutafhandeling, valt het try-catch model op vanwege zijn leesbaarheid en structuur.

Zie Ook

Hier zijn enkele goede aanvullende bronnen om nog dieper te duiken: