Kom igångKom igång gratis

Fånga undantag

Innan du börjar skriva egna anpassade undantag är det bra att ha koll på grunderna för felhantering.

I den här övningen får du en funktion invert_at_index(x, ind) som tar två argument – en lista x och ett index ind – och inverterar elementet på det indexet i listan. Till exempel returnerar invert_at_index([5,6,7], 0) värdet 1/5, det vill säga 0.2.

Ditt mål är att implementera felhantering som aktiverar anpassade undantag beroende på vilket fel som uppstår.

Den här övningen är en del av kursen

Introduktion till objektorienterad programmering i Python

Visa kurs

Övningsinstruktioner

Använd ett try - except - except-mönster (med två except-block) inuti funktionen för att fånga och hantera två undantag på följande sätt:

  • try kör koden som den är och returnerar 1/x[ind].
  • Om ZeroDivisionError inträffar, skriv ut "Cannot divide by zero!".
  • Om IndexError inträffar, skriv ut "Index out of range!"

Du vet att det är rätt när koden körs utan fel och utdata i konsolen ser ut så här:

0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Modify the function to catch exceptions
def invert_at_index(x, ind):
  ____:
    return 1/x[ind]
  _____:
    print("____")
  ____:
    print("____")
 
a_list = [5,6,0,7]

# Works okay
print(invert_at_index(a_list, 1))

# Potential ZeroDivisionError
print(invert_at_index(a_list, 2))

# Potential IndexError
print(invert_at_index(a_list, 5))
Redigera och kör kod