Håndtering av unntak i Python
I Python sammenlignet med andre programmeringsspråk forekommer det svært mange situasjoner som forårsaker unntak.
La oss se nærmere på dem. La oss si at vi har en liste:
lst = [1, 2, 3]
La oss prøve å få tilgang til et element i listen som ikke eksisterer:
print(lts[4])
Etter at koden kjøres vil en feilmelding (unntak) vises:
IndexError: list index out of range
Hvis vi derimot trenger å fortsette arbeidet uten
å vise unntaket, bør det fanges opp med
try-except-konstruksjonen. Den
har følgende syntaks:
try:
# kode som kan forårsake unntak
except:
# feilhåndtering
I try-blokken skal du plassere kode
som kan inneholde unntak. Hvis
det under utførelsen av denne koden oppstår en
unntakssituasjon, vil ikke kjøringen
stoppe, men i stedet gå til koden i
except-blokken. I denne blokken bør du
skrive inn en melding som beskriver
essensen av feilen som oppstod så nøyaktig som mulig.
Hvis det under utførelsen av try-blokken
ikke oppstår noen unntakssituasjoner,
vil bare den nyttige koden kjøre, mens koden
fra except-blokken ikke vil kjøre.
La oss fange unntaket som oppstår når vi prøver å
få tilgang til et element i listen som ikke eksisterer.
For å gjøre dette, plasserer vi koden med
potensiell feil i try-blokken.
Og i except-blokken
angir vi utskrift til konsollen av meldingen 'error:
elem is not exist':
lst = [1, 2, 3]
try:
print(lst[4])
except:
print('error: elem is not exist')
Etter at koden kjøres vil følgende vises:
'error: elem is not exist'
Etter å ha studert try-except-konstruksjonen
bør stilen i koden du skriver endres.
Fra nå av bør alle steder hvor det kan oppstå en
unntakssituasjon, pakkes inn
i try, og i except-blokken
skrive reaksjonen på dette unntaket.
Spør brukeren om to tall. Del det ene på det andre. Fång unntakssituasjonen divisjon med null.
Spør brukeren om et tall. Finn kvadratroten av dette tallet. Fång unntakssituasjonen med å trekke ut roten av et negativt tall.
Gitt en liste. Spør brukeren om et heltall. Hent elementet i listen med det nummeret som brukeren skrev inn. Fång unntakssituasjonen som vil oppstå hvis brukeren skrev inn et tall utenfor listenes rekkevidde.
Gitt følgende kode:
num = '5'
res = num + 2
print(res)
Hva er galt med denne koden? Rett opp dens mangler.
Gitt følgende kode:
lst = [1, 2, 3, 4]
def getElem(iter):
print(iter[4])
getElem(lst)
Hva er galt med denne koden? Rett opp dens mangler.