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:

pythonlst = [1, 2, 3]

Lad os tilgå et ikke-eksisterende element i listen:

pythonprint(lts[4])

Efter udførelse af koden vil der blive vist en fejl (undtagelse):

errorIndexError: 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:

pythontry:
  # 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:

pythonlst = [1, 2, 3]
try:
  print(lst[4])
except:
  print('error: elem is not exist')

Efter udførelse af koden vil der blive vist:

python'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.

Задание 1

Spørg brugeren om to tal. Divider det ene med det andet. Fang undtagelsessituationen division med nul.

Задание 2

Spørg brugeren om et tal. Find kvadratroden af dette tal. Fang undtagelsessituationen ved udtrækning af rod fra et negativt tal.

Задание 3

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.

Задание 4

Givet følgende kode:

pythonnum = '5'
res = num + 2

print(res)

Hvad er der galt med denne kode? Ret dens mangler.

Задание 5

Givet følgende kode:

pythonlst = [1, 2, 3, 4]

def getElem(iter):
  print(iter[4])

getElem(lst)

Hvad er der galt med denne kode? Ret dens mangler.