Håndtering av ulike typer unntak i Python
I samme kode kan det være nødvendig å håndtere ulike typer unntak.
La oss si at vi må fange et unntak ved divisjon med null. Ved en slik feil oppstår unntaket:
ZeroDivisionError: division by zero
For å fange det, skal unntakets navn
skrives i except-blokken:
try:
print(1 / 0)
except ZeroDivisionError:
print('feil: ikke divider på null')
La oss også si at vi har en liste:
lst = [1, 2, 3]
Hvis man setter kode med en annen
potensiell feil i try-blokken, for eksempel utskrift av
et ikke-eksisterende element, vil unntaket
som ikke blir fanget i except-blokken, fortsette
videre og skrives ut i konsollen. Noe som
vil stoppe kodekjøringen:
lst = [1, 2, 3]
try:
print(lst[4]) # vil vise IndexError: list index out of range
except ZeroDivisionError:
print('feil: ikke divider på null')
For å løse en slik situasjon, må man oppgi navnet på den tilsvarende typen unntak i hver blokk. La oss legge til et unntak for manglende element i koden vår:
try:
print(lst[4])
except ZeroDivisionError:
print('feil: ikke divider på null')
except IndexError:
print('feil: elementet eksisterer ikke')
Følgende kode er gitt:
txt = '2'
res1 = txt + 3
res2 = txt1
Skriv koden for å håndtere unntakene
presentert i variablene res1 og res2.