Undfangelse af undtagelser i Python
I Python sammenlignet med andre programmeringssprog forekommer der meget mange situationer, der forårsager undtagelser.
Lad os se nærmere på dem. Antag, at vi har en liste:
lst = [1, 2, 3]
Lad os tilgå et ikke-eksisterende element i listen:
print(lts[4])
Efter udførelse af koden vil der blive vist en fejl (undtagelse):
IndexError: list index out of range
Hvis vi derimod har brug for at fortsætte arbejdet uden
at udskrive undtagelsen, skal den fanges med
try-except-konstruktionen. Den
har følgende syntaks:
try:
# kode, der forårsager en undtagelse
except:
# fejlhåndtering
I try-blokken skal du placere koden,
som kan indeholde en undtagelse. Hvis
der under udførelsen af denne kode opstår en
undtagelsessituation, vil udførelsen af
koden ikke stoppe, men i stedet gå videre til koden i
except- blokken. I denne blok bør du
skrive en besked, der beskriver essensen af den opståede fejl så præcist som muligt.
Hvis der under udførelsen af try-blokken
ikke opstår nogen undtagelsessituationer,
vil den nyttige kode blot blive udført, mens koden
fra except-blokken ikke vil.
Lad os fange vores undtagelse ved tilgang
til et ikke-eksisterende listeelement. For
at gøre dette placerer vi koden med den
potentielle fejl i try-blokken. Og i except-blokken
angiver vi udskrivning af beskeden 'error:
elem is not exist' til konsollen:
lst = [1, 2, 3]
try:
print(lst[4])
except:
print('error: elem is not exist')
Efter udførelse af koden vil der blive vist:
'error: elem is not exist'
Efter at have studeret try-except-konstruktionen
bør din kodes stil ændre sig.
Nu skal alle steder, hvor der kan opstå en
undtagelsessituation, indpakkes
i try, og i except-blokken
skal reaktionen på denne undtagelse skrives.
Spørg brugeren om to tal. Divider det ene med det andet. Fang undtagelsessituationen division med nul.
Spørg brugeren om et tal. Find kvadratroden af dette tal. Fang undtagelsessituationen ved udtrækning af rod fra et negativt tal.
Givet en liste. Spørg brugeren om et helt tal. Hent elementet i listen, hvis nummer brugeren indtastede. Fang undtagelsessituationen, der opstår, hvis brugeren indtastede et tal uden for listens område.
Givet følgende kode:
num = '5'
res = num + 2
print(res)
Hvad er der galt med denne kode? Ret dens mangler.
Givet følgende kode:
lst = [1, 2, 3, 4]
def getElem(iter):
print(iter[4])
getElem(lst)
Hvad er der galt med denne kode? Ret dens mangler.