Eccezione Python

Eccezione Python

Un'eccezione è un evento che si presenta durante l'esecuzione di un programma per terminare o modificare il flusso normale di un programma. Un errore, ad esempio, aumenta un'eccezione. Come altri linguaggi di programmazione, Python contiene molte eccezioni integrate. Queste eccezioni vengono sollevate se si verifica un errore quando viene eseguito il programma. Il tipo di errore determina quale eccezione deve essere sollevata. Quando si verifica un'eccezione, l'interprete di Python controlla se l'eccezione viene gestita; In caso contrario, termina il programma. Questo articolo spiega le eccezioni in Python attraverso vari esempi.

Eccezioni di Python incorporate

Come discusso in precedenza, Python ha molte eccezioni integrate che vengono sollevate quando si verifica un errore durante l'esecuzione di un programma. Ogni eccezione deriva da una classe base di "eccezione". I seguenti includono alcune eccezioni di Python integrate, insieme a una breve descrizione di ogni tipo di eccezione:

Eccezione Descrizione
Eccezione Ogni eccezione deriva da questa classe.
Importatore Questa eccezione viene sollevata quando viene importato un modulo specifico e non viene trovata.
Eoferror Questa è l'eccezione di fine file. Questa eccezione si verifica quando viene raggiunta la fine del file.
ZerodivisionError Questa eccezione viene sollevata quando un numero è diviso per zero.
Keyerror Questa eccezione viene sollevata se viene specificata o utilizzata una determinata chiave che non è definita all'interno di un dizionario.
Indexerror Questa eccezione viene sollevata quando è stato tentato l'accesso a un indice di sequenza che non si trova nell'intervallo.
FloatingPointerror Questa eccezione viene sollevata quando un'operazione a punta mobile è fallita.

Queste sono alcune delle eccezioni integrate in Python. Visitare la documentazione ufficiale per ulteriori informazioni sull'uso delle eccezioni integrate in Python, situato su https: // docs.pitone.org/3/libreria/eccezioni.html.

Uso di eccezione in Python

Le eccezioni in Python sono gestite usando l'istruzione Try. Il pezzo di codice che può lanciare o aumentare un'eccezione è implementato in un blocco di prova. Accanto al blocco di prova, un blocco tranne è implementato per gestire l'eccezione. Nel blocco tranne, prendiamo l'eccezione e decidiamo quale operazione eseguire quando incontriamo quella particolare eccezione. La sintassi di scrivere il tentativo e tranne i blocchi è la seguente:

Tentativo:
eseguire l'operazione o la funzione
tranne:
funzionalità per gestire l'eccezione

Ora implementeremo un codice semplice nel nostro script Python usando il tentativo e tranne i blocchi.

Qui, stamperemo una variabile "Nome" che non è definita. Ciò solleva un'eccezione nel blocco tranne.

#implementando il blocco prova
Tentativo:
Stampa (nome)
#implementando il blocco tranne
tranne:
stampa ("un'eccezione si è verificata")

Produzione

Se non si verifica alcuna eccezione, viene eseguito solo il blocco di prova. Nel blocco tranne, viene stampata un'istruzione che si è verificata un'eccezione.

Diamo un'occhiata a un altro esempio in cui definiamo la variabile del nome:

#Definire la variabile del nome
name = "mark"
#implementando il blocco prova
Tentativo:
Stampa (nome)
#implementando il blocco tranne
tranne:
stampa ("un'eccezione si è verificata")

Produzione

Nell'esempio sopra, il blocco di prova viene eseguito e il blocco tranne viene saltato perché il programma non aumenta alcuna eccezione. Possiamo definire tutti i blocchi tranne il nostro programma che vogliamo. Ogni tranne il blocco gestisce un tipo specifico di eccezione.

#implementando il blocco prova
Tentativo:
Stampa (nome)
#implementando il blocco tranne per catturare l'errore del nome
Tranne NameError:
stampa ("la variabile non è definita")
#implementando il blocco tranne
tranne:
Stampa ("qualcosa è andato storto oltre all'errore di nome")

Produzione

In Python, l'eccezione è la classe base per tutte le eccezioni. Invece di scrivere il nome di una particolare eccezione nel blocco tranne, possiamo semplicemente scrivere "eccezione" e catturare ogni tipo di eccezione in questo modo.

#implementando il blocco prova
Tentativo:
Stampa (nome)
#implementando il blocco tranne per catturare l'errore
Tranne l'eccezione come exp:
Stampa (Exp.__classe__)
#implementando il blocco tranne
tranne:
Stampa ("qualcosa è andato storto oltre all'errore di nome")

Produzione

L'Exp.__Class__ Restituisce il nome della classe di eccezione.

Allo stesso modo, esaminiamo un esempio della classe "ZerodivisionError".

#implementando il blocco prova
Tentativo:
x = 1/0
Stampa (x)
#implementando il blocco tranne per catturare l'errore
Tranne l'eccezione come exp:
Stampa (Exp.__classe__)
#implementando il blocco tranne
tranne:
Stampa ("qualcosa è andato storto oltre all'errore di nome")

Produzione

Il blocco altro

Il blocco altro viene utilizzato con i blocchi di eccezione prova e. Il blocco else definisce un pezzo di codice che viene eseguito se il blocco try esegue correttamente e non si verifica alcun errore. A volte, potrebbe essere necessario stampare un messaggio o eseguire una funzione quando il blocco try è stato eseguito correttamente. Per questo motivo, possiamo implementare il blocco altro con il tentativo e tranne i blocchi.

In questo esempio, implementeremo il blocco else nel nostro script Python.

#implementando il blocco prova
Tentativo:
x = 1/2
Stampa (x)
#implementando il blocco tranne per catturare l'errore
Tranne l'eccezione come exp:
Stampa (Exp.__classe__)
#implementando il blocco altro
altro:
stampa ("tutto è andato bene")

Produzione

Il blocco altro viene eseguito dopo la riuscita esecuzione del blocco di prova.

Guardiamo ora un altro esempio usando il blocco altro.

#implementando il blocco prova
Tentativo:
name = "mark"
#implementando il blocco tranne per catturare l'errore
Tranne l'eccezione come exp:
Stampa (Exp.__classe__)
#implementando il blocco altro
altro:
Stampa ("Il nome è:", nome)

Produzione

Nell'esempio sopra, la variabile del nome è definita all'interno del blocco di prova ed è stampata nel blocco altro.

Il blocco finalmente

IL Finalmente Il blocco contiene il pezzo di codice che deve essere eseguito indipendentemente dal fatto che il blocco di prova aumenti un'eccezione. Il blocco finalmente è facoltativo ed è dichiarato con il blocco di prova. Ad esempio, se abbiamo aperto un file di testo per leggere il blocco di prova e solleva un errore o un'eccezione, è meglio racchiudere il file nel blocco finalmente, anche se si verifica l'errore. Implementamo il blocco finalmente nel nostro script Python.

#implementando il blocco prova
Tentativo:
Stampa (my_dict)
#implementando il blocco tranne per catturare l'errore
Tranne l'eccezione come exp:
Stampa (Exp.__classe__)
#implementando il blocco finalmente
Finalmente:
Stampa ("Questo è il blocco finalmente")
stampa ("il blocco finalmente viene eseguito")

Produzione

Nell'output, si può vedere che il blocco di prova aumenta un'eccezione. Tuttavia, il blocco finalmente viene eseguito alla fine.

Ora, apriamo un file di testo nel blocco Try, che aumenta un'eccezione mentre il file racchiuso nel blocco finalmente.

#implementando il blocco prova
Tentativo:
FileObj = Open ("Mystudent.XML "," R ")
fileobj.Cerca (-2)
Stampa (FileObj.readlines ())
#implementando il blocco tranne
Tranne l'eccezione come exp:
Stampa (Exp.__classe__)
#implementando il blocco finalmente
Finalmente:
fileobj.vicino()
Stampa ("Il file è chiuso correttamente")

Produzione

Come puoi vedere, indipendentemente dall'errore del valore, il file è stato chiuso correttamente all'interno del blocco finalmente.

Sollevare un'eccezione

Sebbene le eccezioni vengano sollevate automaticamente quando si verifica un errore, in Python, puoi anche aumentare manualmente le eccezioni. IL aumentare La parola chiave viene utilizzata per sollevare o lanciare l'eccezione.

Ora solleveremo alcune eccezioni utilizzando la parola chiave alzata. Nell'esempio seguente, la condizione IF è implementata per verificare i numeri non negativi. Se esistono numeri non negativi, allora viene aumentata l'eccezione "Numeri non negativi.

#Declaring a due variabili numeriche
Num1 = 20
Num2 = -10
if ((num1<0) | (num2<0)):
sollevare l'eccezione ("Numeri non negativi non sono consentiti")
altro:
STAMPA (NUM1+NUM2)

Produzione

Conclusione

Un'eccezione si verifica in risposta a un errore in fase di esecuzione. In Python, possiamo gestire le eccezioni usando il tentativo e tranne i blocchi. Questo articolo ha spiegato come usare le eccezioni in Python attraverso vari esempi.