User Tools

Site Tools


appunti3s:eccezioni_in_python

This is an old revision of the document!


Eccezioni in Python

Esistono tre tipi di errori in Python

  • errori di programmazione nella scrittura del codice sorgente (sintassi e simili)
  • errori di programmazione nell'algoritmo, che non fa quello che desideriamo (bug logici)
  • errori in run time oppure di esecuzione, che bloccano il programma in caso di situazioni impreviste, come tentare di aprire un file che non esiste.

In queste pagine vedremo come affrontare queste ultime

Prima delle eccezioni

In passato, quando non esistevano linguaggi come Python, C++ e Java, si dovevano tenere conto degli errori in run time, aggiungendo degli IF nel codice.

Oggi, si deve racchiudere il codice che va incontro ad eventuali situazioni particolari, racchiudendolo in un blocco di codice, in cui è prevista un'alternativa, senza la necessità di scrivere un IF (ma in realtà fa esattamente la stessa cosa di un IF)

Esempi

In Python potrebbe capitare che

  • si tenti di accedere ad un elemento inesistente di un dizionario ( KeyError exception )
  • Ricerca in lista di un valore inesistente ( KeyError exception )
  • utilizzo di una variabile inesistente ( AttributeError exception )
  • chiamata di un emtodo inesistente ( ValueError exception )
  • Mescolare dati di tipo diverso ( TypeError exception ).

Esempio errrato

>>> var = open("non-esiste.txt", "r")
Traceback (innermost last):
File "<interactive input>", line 1, in ?
IOError: [Errno 2] No such file or directory: 'non-esiste.txt'

Esempio corretto

>>> try:
...     var = open("non-esiste.txt")
... except IOError:
...     print "il file non esiste, ma rimaniamo calmi e gestiamo il problema"
... print "questa riga viene stampata sempre, anche se il file esiste"
appunti3s/eccezioni_in_python.1596275735.txt.gz · Last modified: 2020/08/01 11:55 by profpro