Python Probeer Behalve
Met het try
blok kunt u een codeblok testen op fouten.
Met het except
blok kun je de fout afhandelen.
Met het else
blok kun je code uitvoeren als er geen fout is.
Met het finally
blok kun je code uitvoeren, ongeacht het resultaat van de try-and-behalve-blokken.
Afhandeling van uitzonderingen
Wanneer er een fout optreedt, of een uitzondering zoals we die noemen, zal Python normaal gesproken stoppen en een foutmelding genereren.
Deze uitzonderingen kunnen worden afgehandeld met behulp van de try
verklaring:
Voorbeeld
Het try
blok genereert een uitzondering, want x
is niet gedefinieerd:
try:
print(x)
except:
print("An exception occurred")
Aangezien het try-blok een fout oproept, wordt het behalve-blok uitgevoerd.
Zonder het try-blok zal het programma crashen en een foutmelding geven:
Voorbeeld
Deze verklaring zal een fout opleveren, omdat x
deze niet is gedefinieerd:
print(x)
Veel uitzonderingen
U kunt zoveel uitzonderingsblokken definiëren als u wilt, bijvoorbeeld als u een speciaal codeblok wilt uitvoeren voor een speciaal soort fout:
Voorbeeld
Druk één bericht af als het try-blok een a opwerpt NameError
en een ander voor andere fouten:
try:
print(x)
except NameError:
print("Variable x
is not defined")
except:
print("Something else went
wrong")
Anders
U kunt het else
sleutelwoord gebruiken om een codeblok te definiëren dat moet worden uitgevoerd als er geen fouten zijn opgetreden:
Voorbeeld
In dit voorbeeld try
genereert het blok geen enkele fout:
try:
print("Hello")
except:
print("Something went
wrong")
else:
print("Nothing went wrong")
Eindelijk
Het finally
blok, indien gespecificeerd, wordt uitgevoerd ongeacht of het try-blok een fout oplevert of niet.
Voorbeeld
try:
print(x)
except:
print("Something went
wrong")
finally:
print("The 'try except' is finished")
Dit kan handig zijn om objecten te sluiten en bronnen op te ruimen:
Voorbeeld
Probeer een bestand te openen en ernaar te schrijven dat niet beschrijfbaar is:
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")
Het programma kan doorgaan zonder het bestandsobject open te laten.
Maak een uitzondering
Als Python-ontwikkelaar kun je ervoor kiezen om een uitzondering te maken als zich een voorwaarde voordoet.
Gebruik het raise
trefwoord om een uitzondering te gooien (of te verhogen).
Voorbeeld
Verhoog een fout en stop het programma als x lager is dan 0:
x = -1
if x < 0:
raise Exception("Sorry, no numbers below
zero")
Het raise
sleutelwoord wordt gebruikt om een uitzondering op te heffen.
U kunt definiëren wat voor soort fout moet worden gemeld en welke tekst naar de gebruiker moet worden afgedrukt.
Voorbeeld
Verhoog een TypeError als x geen geheel getal is:
x = "hello"
if not type(x) is int:
raise TypeError("Only
integers are allowed")