Python Gestione delle eccezioni: try, except, finally, raise
โก Riepilogo intelligente
Python La gestione delle eccezioni consente al programma di reagire agli errori di runtime anzichรฉ bloccarsi. Qui imparerai come funzionano i blocchi try, except, finally e raise, perchรฉ le eccezioni sono importanti e i tipi di errore predefiniti piรน comuni che incontrerai.

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:
- prova
- prendere
- infine
- 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 generato quando si tenta di importare un modulo che non รจ presente. Questo tipo di eccezione si verifica se hai effettuato dei tentativiping Errore nel nome del modulo oppure 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 un'astrazionetracclasse t. |
| 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. |
