User Tools

Site Tools


appunti3s:eccezioni_in_python

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 ).
  • Si tenta di importare un modulo inesistente ( ImportError 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"

 il file non esiste, ma rimaniamo calmi e gestiamo il problema
 questa riga viene stampata sempre, anche se il file esiste
appunti3s/eccezioni_in_python.txt · Last modified: 2020/08/01 12:06 by profpro