Pitone

Gestione delle eccezioni in Python

Gestione delle eccezioni in Python
Quando eseguiamo un codice che contiene errori, l'errore viene visualizzato nell'output interrompendo l'esecuzione del programma. Alcuni errori potrebbero non essere riconosciuti dagli utenti e creare una situazione indesiderata 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 prova-cattura-finalmente blocco viene utilizzato per gestire gli errori e visualizzarli in un formato leggibile chiamato gestione delle eccezioni. In questo tutorial viene mostrato come è possibile eseguire la gestione delle eccezioni nello script Python.

Sintassi:

provare:
bloccare…
tranne Eccezione:
gestore…
altro:
bloccare…
finalmente:
bloccare…

Qui, se si verifica un errore durante l'esecuzione delle istruzioni di provare block, verrà generata un'eccezione e verrà generato l'errore al corrispondente tranne gestore. È possibile generare più errori in un singolo provare blocco e poi devi scrivere più tranne gestori.  Le dichiarazioni del altro blocco verrà eseguito se non si verifica alcun errore nel provare bloccare. Le dichiarazioni del finalmente blocco verrà eseguito se si verifica o non 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 parte successiva del tutorial.

Esempio 1: utilizzo di un singolo blocco try-eccetto per convalidare i dati numerici:

Questo esempio mostra l'uso molto semplice della gestione delle eccezioni in Python. Nel provare blocco, due input saranno presi dall'utente, uno è un valore stringa e un altro è un valore numerico.  Se l'utente digita un valore stringa al posto del valore numerico per il secondo input, allora, ValoreErrore l'eccezione sarà generata da pitone3 e verrà visualizzato un messaggio di errore personalizzato da tranne bloccare.

#!/usr/bin/env python3
# Definisci il blocco try
provare:
# Prendi qualsiasi dato come una stringa
nome = input("Inserisci il tuo nome: \n")
# Prendi qualsiasi dato numerico
età = int(input("Inserisci la tua età: \n"))
# Stampa i dati formattati con nome ed età
print("Ciao %s, hai %s anni." %(nome età))
# gestisce gli errori di input
tranne (ValueError):
# Stampa messaggio di errore personalizzato
print("Input errato! Devi digitare un numero come la tua età.")

Produzione:

Lo script viene eseguito due volte nel seguente output con l'input sbagliato e l'input corretto. La prima volta, quando l'utente digita 'Trentuno' come valore di età per il secondo input che assume valore numerico quindi a ValoreErrore 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 esclusi per gestire più errori:

In questo esempio viene mostrato come è possibile utilizzare più blocchi esclusi 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, verrà generato un IOError eccezione e se il file esiste ma vuoto, solleverà un'eccezione personalizzata. Per questo, in questo script vengono utilizzati due blocchi tranne. Quando non si verifica alcun errore, verrà visualizzato il contenuto del file.

#!/usr/bin/env python3
# Importa modulo sistema operativo
importare il sistema operativo
# Definisci il blocco try
provare:
# Prendi il nome del file come input
nomefile = input('Inserisci un nome file\n')
# Apri il file per la lettura
file_handler = open(nomefile)
# Imposta il ponte di ricerca da 0 alla fine del file
file_handler.cerca(0, os.CERCA_END)
# Legge la dimensione del file in byte
dimensione = file_handler.raccontare()
# Stampa il contenuto del file e il numero di caratteri del file
if(dimensione > 0):
# Imposta il ponter all'inizio del file
file_handler.cercare(0)
# Legge e memorizza il contenuto del file in una variabile
file_content = file_handler.leggere()
print("\nIl contenuto del file indicato di seguito\n")
print(file_content)
print("La dimensione del file è %d byte"  %size)
altro:
# Solleva un'eccezione se il file è vuoto
raise Exception('Il file non ha contenuto.')
# 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 Eccezione come e:
print('Errore:%s' %e)
# Stampa il messaggio se non ci sono errori
altro:
print('Non si verifica nessun errore')

Produzione:

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

Esempio 3: utilizzo del blocco try-eccetto-finally per gestire l'errore di divisione

L'esempio mostra l'uso di un blocco try-eccetto-finally per gestire l'errore di divisione. Verranno presi due valori numerici come input e dividere il primo input per il secondo input nel blocco try. Qui possono verificarsi due tipi di errori. Uno è ValoreErrore quando l'utente digita qualsiasi valore senza numero e un altro è ZeroDivisionError quando l'utente prenderà 0 come secondo ingresso.

#!/usr/bin/env python3
# Definisci il blocco try
provare:
# Inserisci due numeri float
n1 = float(input('Inserisci un numero\n'))
n2 = float(input('Inserisci un numero\n'))
# Dividi questi numeri
divisione = n1 / n2
# Gestire gli errori
tranne (ZeroDivisionError, ValueError):
print("Divisione per zero errore o Il valore non è un numero")
# Stampa il messaggio se non si verifica alcun errore
altro:
print("Il risultato della divisione è %f" %division )
# Stampa il messaggio se si verifica o non si verifica un errore
finalmente:
print("La fine")

Produzione:

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

Conclusione:

Questo tutorial mostra il processo di base di gestione delle eccezioni in python3 per i nuovi utenti Python. I lettori saranno in grado di capire cos'è la gestione delle eccezioni e come applicarla nello script python dopo aver praticato gli esempi precedenti.

Installa l'ultimo Dolphin Emulator per Gamecube e Wii su Linux
L'emulatore Dolphin ti consente di giocare ai giochi Gamecube e Wii scelti su Personal Computer Linux (PC). Essendo un emulatore di giochi liberament...
Come utilizzare GameConqueror Cheat Engine in Linux
L'articolo copre una guida sull'utilizzo del motore cheat GameConqueror in Linux. Molti utenti che giocano su Windows utilizzano spesso l'applicazione...
I migliori emulatori di console di gioco per Linux
Questo articolo elencherà il popolare software di emulazione della console di gioco disponibile per Linux. L'emulazione è un livello di compatibilità ...