Afvikling af forskellige typer undtagelser i Python
I den samme kode kan det være nødvendigt at håndtere forskellige typer undtagelser.
Lad os sige, at vi skal fange en undtagelse, når der divideres med nul. Ved denne type fejl opstår undtagelsen:
ZeroDivisionError: division by zero
For at fange den skal undtagelsens navn
skrives i except-blokken:
try:
print(1 / 0)
except ZeroDivisionError:
print('fejl: divider ikke med nul')
Lad os også sige, at vi har en liste:
lst = [1, 2, 3]
Hvis du i try-blokken placerer kode med en anden
potentiel fejl, for eksempel udskrivning af et
ikke-eksisterende element, så vil undtagelsen,
som ikke bliver fanget i except-blokken, fortsætte
videre og blive vist i konsollen. Hvilket vil
standse kodekørslen:
lst = [1, 2, 3]
try:
print(lst[4]) # vil vise IndexError: list index out of range
except ZeroDivisionError:
print('fejl: divider ikke med nul')
For at løse denne situation skal du angive den tilsvarende undtagelsestype i hver blok. Lad os tilføje en undtagelse for manglende element i vores kode:
try:
print(lst[4])
except ZeroDivisionError:
print('fejl: divider ikke med nul')
except IndexError:
print('fejl: elementet eksisterer ikke')
Følgende kode er givet:
txt = '2'
res1 = txt + 3
res2 = txt1
Skriv koden for at håndtere de undtagelser, der
forekommer i variablerne res1 og res2.