IniziaInizia gratis

Intercettare le eccezioni

Prima di iniziare a scrivere eccezioni personalizzate, assicuriamoci che tu abbia ben chiari i fondamenti della gestione delle eccezioni.

In questo esercizio ti viene fornita una funzione invert_at_index(x, ind) che accetta due argomenti, una lista x e un indice ind, e inverte l'elemento della lista in quella posizione. Per esempio, invert_at_index([5,6,7], 0) restituisce 1/5, ovvero 0.2.

Il tuo obiettivo è implementare la gestione degli errori per generare eccezioni personalizzate in base al tipo di errore che si verifica.

Questo esercizio fa parte del corso

Introduzione alla programmazione orientata agli oggetti in Python

Visualizza il corso

Istruzioni dell'esercizio

Usa uno schema try - except - except (con due blocchi except) all'interno della funzione per intercettare e gestire due eccezioni come segue:

  • prova a eseguire il codice così com'è, restituendo 1/x[ind].
  • se si verifica ZeroDivisionError, stampa "Cannot divide by zero!",
  • se si verifica IndexError, stampa "Index out of range!"

Saprai di aver fatto bene se il codice gira senza errori e l'output in console è:

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

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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))
Modifica ed esegui il codice