Gestione delle eccezioni in Python

Gestione delle eccezioni in Python
Quando eseguiamo qualsiasi codice che contenga un errore, l'errore viene visualizzato nell'output interrompendo l'esecuzione del programma. Alcuni errori potrebbero non essere riconosciuti dagli utenti e creare una situazione indesiderabile per loro. Ma se l'errore può essere visualizzato in un formato comprensibile per gli utenti, è facile per loro conoscere il motivo dell'errore. In qualsiasi programmazione orientata agli oggetti, prova a prendere O Try-Catch-finalmente Il blocco viene utilizzato per gestire gli errori e visualizzarli in un formato leggibile che si chiama gestione delle eccezioni. In che modo la gestione delle eccezioni può essere eseguita in Python Script è mostrata in questo tutorial.

Sintassi:

Tentativo:
bloccare…
Tranne l'eccezione:
gestore ..
altro:
bloccare…
Finalmente:
bloccare…

Qui, se si verifica un errore durante l'esecuzione delle dichiarazioni di Tentativo Blocca quindi un'eccezione verrà generata e lancia l'errore al corrispondente tranne gestore. Più errori possono essere generati in un singolo Tentativo Blocca e poi devi scrivere più tranne gestori. Le dichiarazioni del altro Il blocco verrà eseguito se non si verifica alcun errore in Tentativo bloccare. Le dichiarazioni del Finalmente il blocco verrà eseguito se si verifica o not si verifica un errore. Per la gestione delle eccezioni, usando altro E Finalmente I blocchi non sono essenziali. Diversi tipi di gestione delle eccezioni in Python sono spiegati nella prossima parte del tutorial.

Esempio-1: Utilizzo di un singolo blocco TRY-ESCEPT per convalidare i dati numerici:

Questo esempio mostra l'uso molto semplice della gestione delle eccezioni in Python. Nel Tentativo Blocco, due input verranno prelevati dall'utente, uno è un valore di stringa e un altro è un valore numerico. Se l'utente digita un valore stringa al posto del valore numerico per il secondo input, il Valorerror L'eccezione sarà generata da Python3 e verrà visualizzato un messaggio di errore personalizzato da tranne bloccare.

#!/usr/bin/env python3
# Definisci il blocco di prova
Tentativo:
# Prendi qualsiasi dati come stringa
name = input ("Immettere il tuo nome: \ n")
# Prendi qualche dati numerico
age = int (input ("immettere la tua età: \ n"))
# Stampa i dati formattati con nome ed età
stampa ("ciao %s, hai %s anni." %(nome età))
# gestire gli errori di input
Tranne (ValueRror):
# Stampa Messaggio di errore personalizzato
Stampa ("Input errati! Devi digitare un numero come la tua età.")

Produzione:

Lo script viene eseguito due volte nel seguente output con input errata e input corretto. La prima volta, quando il tipo di utente 'Trentuno' come valore di età per il secondo input che prende valore numerico di un Valorerror viene generato e il messaggio di errore viene visualizzato dal blocco tranne. La seconda volta, non viene generato alcun errore per i valori di input corretti.

Esempio-2: utilizzo di più blocchi tranne per gestire più errori:

In questo esempio è possibile utilizzare più tranne il blocco per gestire più errori. In questo script verranno gestiti due tipi di errori. Un nome file viene preso come input dall'utente per la lettura. Se il file non esiste, allora genererà un ioerror eccezione e se il file esiste ma vuoto, aumenterà un'eccezione personalizzata. Per questo, due tranne i blocchi vengono utilizzati in questo script. Quando non si verifica alcun errore, verrà visualizzato il contenuto del file.

#!/usr/bin/env python3
# Importa il modulo OS
Import OS
# Definisci il blocco di prova
Tentativo:
# Prendi il nome file come input
FileName = input ('Immettere un nome file \ n')
# Apri il file per la lettura
file_handler = Open (nome file)
# Imposta il ponter Seek da 0 a fine del file
file_handler.Cerca (0, sistema operativo.Seek_end)
# Leggi le dimensioni del file in byte
size = file_handler.raccontare()
# Stampa il contenuto del file e il numero di caratteri del file
if (dimensione> 0):
# Imposta il ponter sull'avvio del file
file_handler.Cerca (0)
# Leggi e memorizza il contenuto del file in una variabile
file_content = file_handler.Leggere()
print ("\ ntle contenuto del file indicato di seguito \ n")
Stampa (file_content)
Stampa ("La dimensione del file è %d byte" %dimensione)
altro:
# Solleva l'eccezione se il file è vuoto
solleva l'eccezione ('Il file non ha contenuti.')
# Stampa il messaggio di errore se il file non esiste
Tranne Ioerror come errore:
Stampa (errore)
# Stampa il messaggio di errore se il file è vuoto
Tranne l'eccezione come E:
print ('Errore: %s' %e)
# Stampa il messaggio se non si verifica alcun errore
altro:
print ("nessun errore si verifica")

Produzione:

Lo script viene eseguito per tre volte. La prima volta, viene dato un nome file che non esiste e l'output mostra un messaggio Ioerror. La seconda volta, viene dato un nome file che esiste ma non ha contenuti e l'output mostra un messaggio personalizzato. La terza volta, viene dato un nome file che esiste e contiene testo. L'output mostra il contenuto del file.

Esempio-3: Utilizzo del blocco try-Except-finalmente per gestire l'errore di divisione

L'esempio mostra l'uso di un blocco try-eccesso-finalmente per gestire l'errore di divisione. Due valori numerici saranno presi come input e dividere il primo input per secondo input nel blocco Try. Qui possono verificarsi due tipi di errori. Uno è Valorerror Quando l'utente digiterà qualsiasi valore senza numero e un altro è ZerodivisionError Quando l'utente prenderà 0 Come secondo input.

#!/usr/bin/env python3
# Definisci il blocco di prova
Tentativo:
# Inserisci due numeri galleggianti
n1 = float (input ('immettere un numero \ n'))
n2 = float (input ('immettere un numero \ n'))
# Dividi questi numeri
Divisione = N1 / N2
# Gestire gli errori
Tranne (ZerodivisionError, ValueRror):
Stampa ("Diviso per errore zero o il valore non è un numero")
# Stampa Messaggio se non si verifica alcun errore
altro:
Stampa ("Il risultato della divisione è %f" %Division)
# Stampa Messaggio se si verifica un errore o meno
Finalmente:
stampa ("la fine")

Produzione:

Qui, lo script viene eseguito per due volte con entrambi gli input corretti e con il secondo input come 0. Quindi, viene generata la seconda eccezione di volta e visualizza il messaggio di errore.

Conclusione:

Questo tutorial mostra il processo di gestione delle eccezioni di base in Python3 per i nuovi utenti Python. I lettori saranno in grado di capire cosa è la gestione delle eccezioni e come applicare nello script Python dopo aver praticato gli esempi di cui sopra.