Cos'è un'eccezione in 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 che il programma si blocchi. Nel linguaggio Python, 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 si verifica raramente. Quando il metodo non è in grado di gestire l'eccezione, viene lanciato alla sua funzione chiamante. Alla fine, quando un'eccezione viene lanciata fuori dalla funzione principale, il programma viene interrotto bruscamente.
In questo eccezionale tutorial sulla gestione di Python, imparerai:
- Cos'è un'eccezione in Python?
- Esempi comuni di eccezione
- Perché dovresti usare le eccezioni?
- Regole di eccezioni
- Meccanismo di movimentazione eccezionale
- L'istruzione Try
- La dichiarazione di cattura
- La dichiarazione Raise
- Importanti errori di Python
- Altre importanti eccezioni di Python
- Errore contro eccezioni
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 di 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 oggetto Python che rappresenta un errore.
- Come con i commenti sul codice, le eccezioni ti aiutano a ricordare a te stesso 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 luogo e in un modo.
- Un'eccezione è un metodo conveniente per la gestione dei messaggi di errore.
- In Python, puoi sollevare un'eccezione nel programma usando il metodo raise exception.
- La generazione di un'eccezione consente di interrompere l'esecuzione del codice corrente e restituisce l'eccezione in attesa finché non viene gestita.
- Elaborazione delle eccezioni per i componenti che non possono gestirle direttamente.
Regole di eccezioni
Ecco alcune regole essenziali per la gestione delle eccezioni di Python:
- Le eccezioni devono essere oggetti di classe
- Per le eccezioni di classe, puoi usare l'istruzione try con una clausola tranne che menziona una particolare classe.
- 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 irreversibili.
Meccanismo di movimentazione eccezionale
La gestione delle eccezioni è gestita dalle seguenti 5 parole chiave:
- provare
- catturare
- infine
- gettare
L'istruzione Try
Un'istruzione try include la parola chiave try, seguita da due punti (:) e una suite di codice 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 alla corrispondenza tranne il gestore che segue la suite try.
Syntax:try:statement(s)
La dichiarazione di cattura
I blocchi di cattura 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 variata a una categoria generale di eccezioni.
Regole per il blocco delle catture:
- È possibile definire un blocco catch utilizzando la parola chiave catch
- Il parametro Catch Exception è sempre racchiuso tra parentesi
- Rappresenta sempre il tipo di eccezione che cattura gli handle di blocco.
- 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 usare 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 Block
Infine il blocco viene sempre eseguito indipendentemente dal fatto che un'eccezione venga lanciata o meno. L'ultima parola chiave consente di creare un blocco di codice che segue un blocco try-catch.
Infine, la clausola è facoltativa. Ha lo scopo di definire azioni di pulizia che dovrebbero essere quelle eseguite in tutte le condizioni.
try:raise KeyboardInterruptfinally:print 'welcome, world!'OutputWelcome, world!KeyboardInterrupt
Infine, la clausola viene eseguita prima dell'istruzione try.
La dichiarazione Raise
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:
Un'eccezione Python può essere qualsiasi valore come una stringa, una classe, un numero o un oggetto. La maggior parte di queste eccezioni sollevate dal core di Python sono classi con un argomento che è un'istanza della classe.
Importanti errori di Python
Tipo di errore | Descrizione |
ArithmeticError | ArithmeticError agisce come una classe base per tutte le eccezioni aritmetiche. Viene sollevato per errori nelle operazioni aritmetiche. |
ImportError | ImportError viene sollevato quando si tenta di importare un modulo che non è presente. Questo tipo di eccezione si verifica se hai fatto un errore di digitazione nel nome del modulo o nel modulo che non è presente nel percorso standard. |
IndexError | Viene generato un IndexErroris quando si tenta di fare riferimento a una sequenza che è fuori intervallo. |
KeyError | Quando una chiave specifica non viene trovata in un dizionario, viene sollevata un'eccezione KeyError. |
NameError | Viene sollevata un'eccezione NameError quando si fa riferimento a un nome nel codice che non esiste mai nello spazio dei nomi locale o globale. |
ValueError | Viene generato un errore di valore quando una funzione o un'operazione incorporata riceve un argomento che può essere di tipo corretto ma non ha un valore appropriato. |
EOFerror | Questo tipo di errore si verifica quando una delle funzioni incorporate (input () o raw_input ()) raggiunge una condizione EOF senza leggere alcun dato. |
ZeroDivisonError | Questo tipo di errore viene generato quando la divisione o il modulo per zero avviene per tutti i tipi numerici. |
IOError- | Questo tipo di errore viene generato quando un'operazione di input / output non riesce. |
Errore di sintassi | SyntaxErrors sollevati quando si verifica un errore nella sintassi di Python. |
IndentationError | Questo errore viene generato quando il rientro non è definito correttamente |
Altre importanti eccezioni di Python
Eccezione | Descrizione |
ArithmeticException | Errore aritmetico, ad esempio divisione per zero. |
ArraylndexOutOfBoundsException | L'indice di matrice è fuori limite. |
ArrayStoreException | L'assegnazione ti aiuta a trovare l'elemento dell'array di un tipo incompatibile. |
ClassCastException | Cast non valido |
MlegalMonitorStateException | Operazione di monitoraggio illegale, come l'attesa di un thread sbloccato. |
MlegalStateException | L'ambiente o l'applicazione è in uno stato sbagliato. |
ClassNotFoundException | Classe non trovata. |
CloneNotSupportedException | Tenta di clonare un oggetto che non implementa l'interfaccia clonabile. |
AccessException illegale | L'accesso a una classe è negato. |
InstantiationException | Si verifica quando si tenta di creare un oggetto di un'interfaccia o di una classe astratta. |
CloneNotSupportedException | Tenta di clonare un oggetto che non implementa l'interfaccia. |
Errore contro eccezioni
Errore | Eccezioni |
Tutti gli errori in Python sono di tipo non selezionato. | Le eccezioni includono sia il tipo selezionato che non selezionato. |
Si verificano errori in fase di esecuzione sconosciuti al compilatore. | Le eccezioni possono essere recuperate gestendole con l'aiuto di blocchi try-catch. |
Gli errori sono principalmente causati dall'ambiente in cui è in esecuzione un'applicazione. | L'applicazione stessa causa eccezioni. |
Esempi: OutofMemoryError | Esempi: eccezioni verificate, 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 si verifica 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 oggetto Python che rappresenta un errore.
- Un'istruzione try include la parola chiave try, seguita da due punti (:) e una suite di codice in cui possono verificarsi eccezioni. Ha una o più clausole.
- I blocchi di cattura 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, il blocco viene sempre eseguito indipendentemente dal fatto che un'eccezione venga lanciata o meno.