Le eccezioni in Python

Il linguaggio Python consente di gestire le eccezioni ( exception ) in modo simile ad altri linguaggi di programmazione come il Java.

Cos'è un'eccezione? Si tratta di un evento imprevisto che impedisce o altera l'esecuzione del programma. Ad esempio, la divisione per zero di un valore numerico, ecc. Le eccezioni servono a gestire il verificarsi di questi eventi anomali.

Per gestire le eccezioni in Python si utilizzano le istruzioni TRY / EXCEPT.

Un esempio di eccezione in Python

In questo programma ho volutamente creato una situazione di errore.

Nelle prime due righe assegno il valore zero e cinque alle variabili A e B.

Nella terza riga visualizzo il risultato della divisione di A per B.

a=0
b=0
print(b/a)

La divisione di qualsiasi numero per zero è impossibile.

Pertanto, l'esecuzione del codice restituisce un errore.

ERROR

Come gestire l'errore con un'eccezione

Per impedire la visualizzazione dell'errore posso prevedere questa ipotesi durante lo sviluppo del codice e gestirla tramite un eccezione.

Inserisco l'istruzione TRY prima di PRINTF. In questo modo dico al programma di tentare l'operazione.

try:
printf(b/a)
except ZeroDivisionError:
printf("divisione per zero impossibile")

Dopo PRINTF aggiungo la clausola EXCEPT seguita dal parametro dell'errore che voglio intercettare ( ZeroDivisionError ) e dal codice alternativo da eseguire nel caso si verificasse.

Il risultato dell'esecuzione del programma

Durante l'esecuzione il programma non restituisce più un messaggio di errore.

  1. Se la divisione B/A è possibile, il programma visualizza il risultato della divisione ( quoziente ). Ad esempio, se B=6 e A=2 il programma visualizza il numero 3 come risultato:

    3

  2. Se la divisione B/A è impossibile perché A è uguale a zero ( A=0), qualunque sia il valore di B il programma visualizza il messaggio "divisione per zero impossibile".

    divisione per zero impossibile

In questo modo ho intercettato un errore e l'ho gestito tramite un'eccezione.

Attenzione. Ogni eccezione gestisce soltanto un tipo di errore ma non altri. Nell'esempio precedente ho gestito una tipologia di errore ( divisione per zero ). Se si verificasse un altro tipo di errore ( es. uno dei due valori è alfanumerico ) il programma restituirebbe comunque un errore.

I tipi di eccezioni in Python

Nel linguaggio Python esistono due tipologie di eccezioni:

  1. Le eccezioni gestite ( handled )
  2. Le eccezioni non gestite ( unhandled ).


 
Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Python ( eccezioni )

  1. Come gestire le eccezioni

Le istruzioni

  1. try except
  2. pass
  3. raise
  4. sys.exc_info()