Come catturare tutte le eccezioni in Python

Come catturare tutte le eccezioni in Python
I programmatori classificano frequentemente le eccezioni come guasti del codice che comportano errori ogni volta che il programma viene eseguito. Le eccezioni rappresentano errori che si svolgono a seguito di uno script. Alcuni programmatori non possono ancora dire la differenza tra errori e eccezioni. La maggior parte di tali errori sembra logica. In Python, le eccezioni vengono catturate usando una logica semplice. Ogni volta che un interprete di Python incontra un'eccezione, termina il flusso di lavoro. Viene affrontato passando attraverso la procedura di chiamata. Il software si bloccherà se questo non viene fatto. Per distinguere tra errori ed eccezioni, ci sono state due categorie di errori da considerare:
  • Errori di sintassi
  • Errori logici (eccezioni)

Errore di sintassi

Per vedere il funzionamento degli errori logici, dobbiamo prima ottenere l'esempio dell'errore di sintassi. Apri il terminale shell usando "Ctrl+Alt+T" dalla tastiera. Dopo aver aperto la shell, creeremo un nuovo file Python. Per creare un file, scrivi la query indicata mostrata nell'immagine così com'è.

$ touch test.Py

Apriamo il file "Test.py ”dalla tua home directory locale a doppio tocco su di esso. Dopo l'apertura del file, scrivi il codice seguente così com'è. Devi prima capire questo codice. Abbiamo aggiunto il supporto di Python. Successivamente, abbiamo inizializzato una variabile del dizionario "età" per aggiungere due chiavi con due valori. Non abbiamo aggiunto una virgola tra le due chiavi. Questo sarà il nostro errore di sintassi in fase di esecuzione. Successivamente, abbiamo stampato la chiave "AQSA" e il suo valore dal dizionario. Salva il file con Ctrl+S e fai clic sul pulsante Cross per lasciarlo.

Eseguiamo il nostro file per versione Python3 come di seguito. L'immagine di output mostra l'errore di sintassi che dice: sintassi non valida perché la virgola manca dall'istruzione. Puoi vedere che non c'è errore logico.

Test $ Python3.Py

Aggiorniamo rapidamente il codice aggiungendo una virgola nell'istruzione per prevenire gli errori di sintassi. Salva questo codice e chiuderlo tramite segno incrociato dal lato destro della finestra.

Eseguiamo di nuovo il nostro file per vedere il risultato per versione Python3. L'output dell'istantanea seguente mostra l'output corretto senza sintassi o errori logici.

Test $ Python3.Py

Errori logici

Gli errori logici sono quelle eccezioni che si verificano in un tempo di esecuzione a causa di un errore logico nel nostro codice. All'inizio di questa guida, abbiamo menzionato la cattura di tutte le eccezioni allo stesso tempo. Ma per capire questo concetto, abbiamo bisogno di prima di vedere una cattura di un'eccezione alla volta. Quindi, apri il terminale della shell e convertilo in formato di codice Python3 per utilizzare Python su di esso usando la query seguente come mostrato nell'immagine.

$ Python3

Ora il terminale è pronto per la codifica. Aggiungi qualche affermazione che mostra un errore logico in esso. Supponiamo che abbiamo aggiunto "2/0", che non è possibile in matematica. Quindi questo dovrebbe lanciare un errore logico. Inseriscilo su shell e premi Invio. L'output mostra "ZerodivisionError" perché qualsiasi cosa divisa per zero non può restituire una risposta.

>>> 2/0

Facciamo un altro esempio di cattura di una singola eccezione sul terminale. Apri un file che non è nemmeno creato o trovato nell'attuale directory locale di Linux come di seguito. Inserrà un'eccezione "FileNotFounderror" in fase di esecuzione perché non esiste un tale file nel nostro sistema.

>>> aperto ("due.TXT")

Esempio: eccezioni di cattura

Finalmente! È ora di ottenere tutte le eccezioni in un unico posto. Quindi, apri il test del file Python.Py dalla tua attuale home directory del sistema Linux. Ora scrivi il codice visualizzato di seguito. Questo codice contiene un elenco "L" con diversi tipi di elementi in esso. Abbiamo usato un ciclo "per" per ottenere ogni valore dall'elenco e applicare una dichiarazione di prova ad esso. L'istruzione Try verrà prima stampata quell'elemento dall'elenco. La riga successiva convertirà prima quell'elemento in tipo intero e poi dividerà 1 con quell'elemento convertito. Successivamente, abbiamo usato l'istruzione TREST che stamperà il nome di eccezione che si è verificato a causa dell'istruzione "prova" usando un sistema.Metodo Esc_info (). Un'altra stringa verrà stampata, e poi dopo l'istruzione "tranne" il corpo, abbiamo inizializzato un'istruzione di stampa per stampare il risultato della divisione che è stata fatta per provare la dichiarazione. Premere Ctrl+S per salvare il file e premere sul pulsante Cross per chiuderlo rapidamente. Ora apri il terminale per vedere il funzionamento del nostro codice.

Eseguire la query di seguito per eseguire questo file. L'output mostra il risultato dell'istruzione di stampa "Il risultato viene" utilizzato nell'istruzione "prova" per ogni elemento elenco. Poiché i primi due elementi dell'elenco sono variabili String e MultityPE, la divisione non può verificarsi. Questo porta a diversi errori. L'istruzione del primo valore "tranne" è stata eseguita e mostra i nomi degli errori usando il sistema.Metodo Exc_info (). A causa dell'eccezione, la terza istruzione di stampa dalla clausola "tranne" verrà eseguita per entrambi i primi due elementi dell'elenco. Ma puoi vedere nell'output che il risultato per il terzo valore non lancia alcuna eccezione. Questo perché il terzo elemento dell'elenco è un numero intero e può essere diviso per 1 perfettamente. L'istruzione tranne non è stata eseguita in questo caso; Pertanto, il controllo è stato dato all'istruzione di stampa più esterna e produce il valore risultante generato dalla divisione.

Conclusione

Abbiamo coperto la sintassi ed errori logici in questo articolo. Ancora più importante, abbiamo discusso del metodo per catturare tutte le eccezioni nel nostro articolo tramite il "SYS.Exc_info () "Utilizzo del metodo.