Gestione delle eccezioni in Python: gestione delle eccezioni utilizzando Try Except

Pubblicato: 2021-06-29

Quando si verifica un errore, un programma di Python viene terminato. Gli errori sono generalmente problemi che si verificano in un programma che interrompe la sua esecuzione. Gli errori potrebbero essere dovuti a un errore di sintassi o potrebbero essere un'eccezione. Ogni volta che un'istruzione errata viene rilevata dal parser, si verifica un errore di sintassi.

Tuttavia, quando il codice con la sintassi corretta genera un errore, è noto come eccezione. Varie eccezioni integrate sono disponibili in Python. Questi vengono generati al verificarsi di eventi interni in cui viene modificato il flusso normale di un programma.

Pertanto le eccezioni possono essere definite come determinate condizioni insolite del programma che provocano un'interruzione del codice e quindi il flusso del programma viene interrotto.

L'esecuzione di un programma si interrompe non appena incontra un'eccezione. Ciò interrompe ulteriormente l'esecuzione del codice. Pertanto, le eccezioni sono errori dovuti al runtime che non possono essere gestiti dallo script Python.

Per la gestione delle eccezioni in python , il linguaggio di scripting python fornisce una soluzione in modo che l'esecuzione del codice continui e non ci siano interruzioni. L'assenza di gestione delle eccezioni interrompe l'esecuzione del codice che esiste dopo il codice che genera un'eccezione.

In Python sono disponibili diverse opzioni integrate che consentono l'esecuzione di un programma senza alcuna interruzione comprese le eccezioni comuni. Insieme a questo, c'è una disposizione di eccezioni personalizzate python . Per qualsiasi programma Python, le eccezioni comuni che possono essere generate sono:

  • ZeroDivisionError: questo tipo di eccezione si verifica quando zero viene utilizzato per dividere un numero.
  • NameError: ogni volta che un programma non riesce a trovare un nome, sia esso globale o locale, si verifica questo tipo di eccezione.
  • IndentationError: un'indentazione errata dà origine all'indentationError.
  • IOError : l'errore di un'operazione Input-Output provoca IOError.
  • EOFError: Si verifica nel funzionamento continuo di un programma anche quando il

è stata raggiunta la fine del file.

Sommario

Sollevare un'eccezione

Per generare un'eccezione in determinate condizioni viene utilizzato il rilancio.
L'esecuzione del programma viene interrotta e l'eccezione associata viene visualizzata sullo schermo. La visualizzazione delle eccezioni consente agli utenti di sapere quale potrebbe essere il problema sottostante.

In Python attraverso l'uso della clausola raise, possiamo sollevare un'eccezione. L'applicazione è utile nei casi in cui è necessario arrestare il programma sollevando un'eccezione.

Ad esempio: presumibilmente un programma necessita di circa 1 GB di memoria per la sua esecuzione e tenta di occupare 1 GB, in tal caso, per interrompere l'esecuzione del programma può essere generata un'eccezione.

Sintassi per sollevare un'eccezione:

Classe_eccezione,<valore>

Perciò,

  • 'raise' viene utilizzato per sollevare un'eccezione in un programma.
  • È possibile fornire un valore a un'eccezione che può essere fornita tra parentesi.
  • L'accesso al valore può essere effettuato con la parola chiave ”as”. Il valore assegnato all'eccezione può essere memorizzato nella variabile di riferimento indicata con "e".
  • Per specificare un tipo di eccezione, il valore può essere passato a un'eccezione.

AssertionError

Un'asserzione può essere fatta in Python invece di lasciare che il programma si arresti in modo anomalo. Viene fatta un'asserzione che una condizione specifica è soddisfatta dal programma. Il programma continuerà a funzionare se la condizione è vera. Altrimenti un'eccezione AssertionError viene generata dal programma quando la condizione risulta essere falsa.

Gestione delle eccezioni tramite il blocco try and exclude

Le eccezioni generate in python vengono catturate e quindi gestite dai blocchi try ed eccetto in python. Il codice all'interno del blocco try viene eseguito normalmente come parte del programma. L'altro blocco include istruzioni che vengono eseguite in risposta alle eccezioni generate dal programma nel blocco try.

Il programma genera un'eccezione ogni volta che incontra un errore in un codice sintatticamente corretto. Se le eccezioni generate non vengono gestite correttamente, si verificherà un arresto anomalo dei programmi. In tali scenari, il blocco exclude determina la risposta del programma a tale eccezione.

L'applicazione della clausola try and exclude sarà meglio compresa attraverso il seguente esempio tratto dalla fonte citata.

In questo caso, ogni volta che si verifica un'eccezione, il programma continuerà a essere eseguito e informerà l'utente che il programma non ha avuto esito positivo anziché fornire un output vuoto.

Checkout : idee e argomenti del progetto Python

Il programma ha mostrato il tipo di errore generato tramite la chiamata della funzione. Tuttavia, l'errore generato dalla funzione può essere catturato per avere un'idea di cosa è andato storto.

L'esecuzione del codice in una macchina Windows genererà quanto segue

Il messaggio visualizzato per primo indica un AssertionError attraverso il quale l'utente viene informato che la funzione può essere eseguita solo su un sistema di sistema operativo Linux. Il secondo messaggio fornisce inoltre l'informazione di quale funzione non è stata in grado di essere eseguita.
Non esiste se il file.log genererà un output con il messaggio "Impossibile aprire file.log".

Il programma continuerà comunque a funzionare in quanto è un messaggio che trasmette le informazioni all'utente. Molte eccezioni integrate sono disponibili nei documenti Python. Un'eccezione come descritto è mostrata di seguito.

La non esistenza del file.log in questo caso genererà il seguente output.

Varie eccezioni possono essere rilevate tramite l'uso di più chiamate di funzione nella clausola try. Tuttavia, al rilevamento di un'eccezione, le istruzioni della clausola try si interromperanno.

L'altra clausola

L'uso della clausola else delle istruzioni può aiutare a istruire il programma per l'esecuzione di un blocco di istruzioni solo quando non ci sono eccezioni.

La clausola else è stata eseguita solo perché non c'erano eccezioni. Se il codice contiene eccezioni, risulterà quanto segue.

Eccezioni personalizzate Python

Python ha una serie di eccezioni integrate che generano un errore ogni volta che c'è qualcosa di sbagliato nel programma. Tuttavia, l'utente deve creare alcune eccezioni personalizzate nei casi in cui il suo scopo deve essere servito.

È possibile creare una nuova classe per definire le eccezioni personalizzate. Direttamente o indirettamente, queste classi devono essere derivate dalla classe delle eccezioni integrate.

Viene creata la classe definita dall'utente CustomError che viene ereditata dalla classe Exception. Simile alle altre eccezioni, anche queste eccezioni vengono sollevate tramite l'uso di "raise" con un messaggio di errore facoltativo.

Le eccezioni definite dall'utente devono essere inserite in un file separato ogni volta che si sviluppa un programma Python di grandi dimensioni. È generalmente una buona pratica eseguire questa operazione ed è seguita dalla maggior parte dei moduli standard in cui le eccezioni sono definite separatamente come errors.py o di eccezioni.py.

Le eccezioni personalizzate di Python sono semplici e poiché le classi normali implementano tutto, anche loro seguono lo stesso.

Sintassi ed esempi

Consideriamo due variabili che sono a e b. L'input delle variabili viene preso dall'utente e viene eseguita la divisione dei numeri. Ora, se il denominatore inserito dall'utente è zero.

Per gestire queste eccezioni, è possibile aggiungere al programma i blocchi try-exception. Per qualsiasi tipo di codice che porti al sospetto di generare eccezioni. Dovrebbe essere inserito nel blocco di istruzioni try.

Sintassi di un blocco try

Tentativo:

#codice

tranne Eccezione1:

#codice

tranne Eccezione2:

#codice

#codice

Mostra l'uso di istruzioni try-except in cui il codice viene inserito nel blocco try e viene eseguito quando non ci sono eccezioni nel codice.

Sintassi dell'istruzione else con try-eccetto

Tentativo

#prova affermazioni

Tranne Eccezione1

#codice

Altro

#esecuzione del codice quando non ci sono eccezioni

Alcuni punti importanti:

  • L'eccezione non deve essere specificata tramite una dichiarazione di eccezione in python.
  • È possibile dichiarare più eccezioni in un codice tramite l'uso di un blocco try poiché possono esserci molte istruzioni all'interno di un blocco try che possono generare eccezioni di tipo diverso.
  • Un altro blocco può essere specificato con un blocco try che viene eseguito quando non ci sono eccezioni generate dal blocco try.
  • Il blocco else dovrebbe contenere istruzioni che non sono responsabili della generazione di eccezioni.

Leggi anche: Principali motivi per cui Python è popolare tra gli sviluppatori

Conclusione

In questo articolo, abbiamo discusso brevemente il concetto di gestione delle eccezioni in Python con alcuni esempi. Insieme alle eccezioni integrate, vengono definite brevemente anche le eccezioni personalizzate di Python . Ora puoi conoscere l'importanza delle eccezioni e la gestione delle eccezioni in python .

Se sei interessato a saperne di più sul linguaggio Python e sulla sua implementazione nella scienza dei dati, puoi dare un'occhiata al seguente corso di upGrad "Executive PG Program in Data Science".

Il corso online è rivolto a tutti i professionisti entry-level che rientrano nella fascia di età compresa tra i 21 ei 45 anni. Con oltre 20 sessioni dal vivo e la conoscenza pratica di oltre 14 strumenti e linguaggi di programmazione, il corso ti guiderà verso la perfezione. Eventuali domande potrebbero essere inviate tramite messaggi. Il nostro team ti aiuterà.

Quanti tipi di errori ci sono in Python?

Ci sono principalmente 2 categorie di errori distinguibili in Python: Errori ed eccezioni di sintassi. Errori di sintassi: gli errori di sintassi sono causati quando qualsiasi riga di codice ha una sintassi errata. Questo è l'errore più comune e viene rilevato durante l'analisi del programma. Gli errori includono la mancanza di un operatore, il rientro improprio, l'ortografia della parola chiave errata, i due punti mancanti, l'uscita di parentesi e altri piccoli errori nella sintassi. Eccezioni: le eccezioni sono gli errori che vengono rilevati durante l'esecuzione del programma. Dopo che il programma ha superato il test di sintassi, esegue un controllo degli errori logici. Python ha una ricca collezione di eccezioni integrate. Puoi anche creare eccezioni personalizzate definite dall'utente.

Qual è la differenza fondamentale tra un errore di sintassi e un'eccezione?

Si verifica un errore di sintassi quando il codice o una riga di codice è sintatticamente errato. Quando si verifica un errore di sintassi in un codice, il programma viene terminato. Potrebbe verificarsi un errore di sintassi per la mancanza di due punti o anche per l'errore di ortografia di una parola chiave.
Tuttavia, le eccezioni sono abbastanza diverse. Un'eccezione può essere considerata come un'anomalia che interrompe il flusso del programma. Anche se il programma è sintatticamente corretto, è possibile che si verifichi l'eccezione. A differenza di un errore, il codice viene eseguito fino alla riga in cui si verifica l'eccezione.

Qual è il ruolo della parola chiave raise in Python?

La parola chiave raise viene utilizzata per sollevare un'eccezione in Python. Il tipo di errore può anche essere sollevato insieme e puoi anche aggiungere del testo da visualizzare al momento della generazione dell'eccezione. Risulta molto utile quando devi controllare il tuo codice per gli input.