Python Gestione delle eccezioni: prova, cattura, infine e rilancia [Esempio]

Cos'è la gestione delle eccezioni Python?

Un'eccezione è un errore che si verifica al momento dell'esecuzione di un programma. Tuttavia, durante l'esecuzione di un programma, Python genera un'eccezione che dovrebbe essere gestita per evitare il crash del programma. In Python linguaggio, le eccezioni si attivano automaticamente in caso di errori oppure possono essere attivate e intercettate dal codice.

L'eccezione indica che, sebbene l'evento possa verificarsi, questo tipo di evento accade raramente. Quando il metodo non è in grado di gestire l'eccezione, viene lanciata alla sua funzione chiamante. Alla fine, quando viene emessa un'eccezione dalla funzione principale, il programma viene terminato bruscamente.

Esempi comuni di eccezione

  • Divisione per zero
  • Accesso a un file che non esiste.
  • Aggiunta di due tipi incompatibili
  • Tentativo di accedere a un indice inesistente di una sequenza
  • Rimozione della tabella dal server database disconnesso.
  • Prelievo ATM superiore all'importo disponibile

Perché dovresti usare le Eccezioni?

Ecco i motivi per utilizzare le eccezioni in Python:

  • La gestione delle eccezioni consente di separare il codice di gestione degli errori dal codice normale.
  • Un'eccezione è un file Python oggetto che rappresenta un errore.
  • Come con i commenti sul codice, le eccezioni ti aiutano a ricordare cosa si aspetta il programma.
  • Chiarisce il codice e migliora la leggibilità.
  • Consente di stimolare le conseguenze poiché la gestione degli errori avviene in un unico luogo e in un unico modo.
  • Un'eccezione è un metodo conveniente per gestire i messaggi di errore.
  • In Python, è possibile sollevare un'eccezione nel programma utilizzando il metodo raiseException.
  • La generazione di un'eccezione aiuta a interrompere l'esecuzione corrente del codice e riporta l'eccezione alle aspettative finché non viene gestita.
  • Elaborazione delle eccezioni per i componenti che non possono gestirle direttamente.

Regole di eccezione

Ecco alcune regole essenziali di Python gestione delle eccezioni:

  • Le eccezioni devono essere oggetti di classe
  • Per le eccezioni di classe, puoi utilizzare l'istruzione try con una clausola tranne che menziona una classe particolare.
  • Anche se un'istruzione o un'espressione è sintatticamente corretta, potrebbe visualizzare un errore quando si tenta di eseguirla.
  • Gli errori rilevati durante l'esecuzione sono chiamati eccezioni e non sono incondizionatamente fatali.

Python Meccanismo di gestione delle eccezioni

La gestione delle eccezioni è gestita dalle seguenti 5 parole chiave:

  1. prova
  2. prendere
  3. infine
  4. gettare

Python Prova Dichiarazione

Un'istruzione try include la parola chiave try, seguita da due punti (:) e da una serie di codici in cui possono verificarsi eccezioni. Ha una o più clausole.

Durante l'esecuzione dell'istruzione try, se non si sono verificate eccezioni, l'interprete ignora i gestori di eccezioni per quella specifica istruzione try.

Nel caso in cui si verifichi un'eccezione in una suite try, la suite try scade e il controllo del programma viene trasferito al gestore delle eccezioni corrispondente che segue la suite try.

Syntax:
try:
statement(s)

La dichiarazione di cattura

I blocchi catch accettano un argomento alla volta, che è il tipo di eccezione che è probabile che catturi. Questi argomenti possono variare da un tipo specifico di eccezione che può essere variato a una categoria generale di eccezioni.

Regole per il blocco catch:

  • È possibile definire un blocco catch utilizzando la parola chiave catch
  • Il parametro Catch Exception è sempre racchiuso tra parentesi
  • Rappresenta sempre il tipo di eccezione gestita dal blocco catch.
  • Un codice di gestione delle eccezioni viene scritto tra due parentesi graffe {}.
  • È possibile posizionare più blocchi catch all'interno di un singolo blocco try.
  • Puoi utilizzare un blocco catch solo dopo il blocco try.
  • Tutto il blocco catch dovrebbe essere ordinato dalla sottoclasse all'eccezione della superclasse.

Esempio:

try
}
catch (ArrayIndexOutOfBoundsException e) {
System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) {
System.err.printin("Caught second " + e.getMessage());
}

Infine Dichiarazione in Python

Infine block viene sempre eseguito indipendentemente dal fatto che un'eccezione venga lanciata o meno. La parola chiave finale consente di creare un blocco di codice che segue un blocco try-catch.

Infine, la clausola è facoltativa. Si intende definire le azioni di bonifica che dovranno essere eseguite in tutte le condizioni.

try:
    raise KeyboardInterrupt
finally:
    print 'welcome, world!'
Output
Welcome, world!
KeyboardInterrupt

Infine, la clausola viene eseguita prima dell'istruzione try.

Aumentare la dichiarazione in Python

L'istruzione raise specifica un argomento che inizializza l'oggetto eccezione. Qui, una virgola segue il nome dell'eccezione e l'argomento o la tupla dell'argomento che segue la virgola.

Sintassi:

raise [Exception [, args [, traceback]]]

In questa sintassi l'argomento è facoltativo e al momento dell'esecuzione il valore dell'argomento dell'eccezione è sempre nessuno.
Esempio:
A Python l'eccezione può essere qualsiasi valore come una stringa, una classe, un numero o un oggetto. La maggior parte di queste eccezioni sollevate da Python core sono classi con un argomento che è un'istanza della classe.

Consigli Python errori

Tipo di errore Descrizione
Errore aritmetico ArithmeticError funge da classe base per tutte le eccezioni aritmetiche. Viene sollevato per errori nelle operazioni aritmetiche.
Errore di importazione ImportError viene sollevato quando si tenta di importare un modulo che non è presente. Questo tipo di eccezione si verifica se hai commesso un errore di battitura nel nome del modulo o se il modulo non è presente nel percorso standard.
Errore indice Viene generato un IndexErrore quando si tenta di fare riferimento a una sequenza fuori intervallo.
Errore chiave Quando una chiave specifica non viene trovata in un dizionario, viene sollevata un'eccezione KeyError.
NomeErrore Viene sollevato un NameError quando nel codice si fa riferimento a un nome che non esiste mai nello spazio dei nomi locale o globale.
ValoreErrore Viene generato un errore di valore quando una funzione o un'operazione incorporata riceve un argomento che può essere del tipo corretto ma non ha un valore adeguato.
EOFerrore Questo tipo di errore si verifica quando una delle funzioni integrate (input() o raw_input()) raggiunge una condizione EOF senza leggere alcun dato.
ZeroDivisonErrore Questo tipo di errore viene generato quando viene eseguita la divisione o il modulo per zero per tutti i tipi numerici.
IOError- Questo tipo di errore viene generato quando un'operazione di input/output fallisce.
Errore di sintassi SyntaxErrors viene sollevato quando si verifica un errore nel file Python sintassi.
Errore di indentazione Questo errore viene generato quando il rientro non è definito correttamente

Altro Importante Python Eccezioni

Eccezione Descrizione
ArithmeticException Errore aritmetico, come la divisione per zero.
ArraylndexOutOfBoundsException L'indice dell'array è fuori limite.
ArrayStoreException L'assegnazione ti aiuta all'elemento dell'array di un tipo incompatibile.
ClassCastException Cast non valido
MlegalMonitorStateException Operazione di monitoraggio illegale, come l'attesa su un thread sbloccato.
MlegalStateException L'ambiente o l'applicazione sono in uno stato errato.
ClassNotFoundException Classe non trovata.
CloneNotSupportedException Tentativo di clonare un oggetto che non implementa l'interfaccia Cloneable.
Eccezione di accesso illegale L'accesso a una classe è negato.
InstanziationException Si verifica quando si tenta di creare un oggetto di un'interfaccia o di una classe astratta.
CloneNotSupportedException Tentativo di clonare un oggetto che non implementa l'interfaccia.

Errori ed eccezioni

Errore Eccezioni
Tutti gli errori in Python sono del tipo non controllato. Le eccezioni includono sia il tipo selezionato che quello non selezionato.
Si verificano errori in fase di esecuzione sconosciuti al compilatore. Le eccezioni possono essere recuperate gestendole con l'aiuto dei blocchi try-catch.
Gli errori sono causati principalmente dall'ambiente in cui è in esecuzione l'applicazione. L'applicazione stessa causa eccezioni.
Esempi:
Errore di memoria esaurita
Esempi:
Eccezioni controllate, eccezione SQL, NullPointerException, ecc.

Sommario

  • Un'eccezione è un errore che si è verificato durante l'esecuzione di un programma.
  • L'eccezione indica che, sebbene l'evento possa verificarsi, questo tipo di evento accade raramente.
  • Esempi comuni di eccezione sono 1) Divisione per zero, 2) Accesso a un file che non esiste, 3) Aggiunta di due tipi incompatibili.
  • Un'eccezione è un file Python oggetto che rappresenta un errore.
  • Un'istruzione try include la parola chiave try, seguita da due punti (:) e da una serie di codici in cui possono verificarsi eccezioni. Ha una o più clausole.
  • I blocchi catch accettano un argomento alla volta, che è il tipo di eccezione che è probabile che catturi.
  • L'istruzione raise specifica un argomento che inizializza l'oggetto eccezione.
  • Infine, block viene sempre eseguito indipendentemente dal fatto che un'eccezione venga lanciata o meno.