Un'eccezione è un evento imprevisto che si verifica durante l'esecuzione del programma. È noto anche come errore di runtime. Quando si verifica quell'errore, Python genera un'eccezione durante l'esecuzione e questa può essere gestita, impedendo l'interruzione del programma. In questo articolo ci concentreremo su 'Come possiamo stampare un'eccezione in Python?'
Cos'è l'eccezione in Python?
In Pitone , L'eccezione è un tipo di errore nel programma. Un errore viene chiamato 'Eccezione' quando il programma è sintatticamente corretto, ma si verifica un errore durante l'esecuzione.
Esempio : Nell'esempio, stiamo provando a dividere un numero per zero in modo che venga generato un errore di runtime.
Python3
num1>=> 5> num2>=> 0> print>(num1>/> num2)> |
>
jquery al clic
>
Produzione
Traceback (most recent call last): File 'Solution.py', line 5, in print(num1 / num2) ZeroDivisionError : division by zero>
Questo programma è sintatticamente corretto . L'unico problema qui è dovuto ai numeri utilizzati per l'operazione. Poiché non possiamo dividere nessun numero per 0, viene generato un errore. Pertanto, questo è un esempio di “Eccezione”.
Che aspetto hanno le Eccezioni?
Nel programma precedente, quando lo abbiamo eseguito, abbiamo ottenuto un'eccezione. L'errore generato mostrava la riga in cui si è verificato l'errore, la riga esatta e il tipo di errore.
Il tipo di errore mostrato è chiamato 'Eccezione'. Attraverso le Eccezioni veniamo a conoscenza del problema che si è verificato. L'eccezione nel programma sopra è ZeroDivisionErrore: divisione per zero .
Esempio : Qui l'assegnazione della variabile var1 viene eseguita da an variabile non definita , var2.
Python3
cos'è GB
var1>=> var2> |
>
>
Produzione
Traceback (most recent call last): File 'Solution.py', line 2, in var1 = var2 NameError: name 'var2' is not defined>
Sopra, possiamo vedere l'eccezione come NameError: il nome 'var2' non è definito .
Gestione delle eccezioni in Python
Le eccezioni a volte possono essere molto fastidiose. È qui che entra in gioco il concetto di gestione delle eccezioni. Attraverso la gestione delle eccezioni, possiamo gestire facilmente le eccezioni per l'utente invece di limitarsi a generare errori all'utente.
Esempio : In questo programma, l'input è del tipo 'int'. Ma se inseriamo un carattere, verrà generato un 'ValueError'. Questo può confondere l'utente molte volte. Ecco dove eseguiamo la gestione delle eccezioni. Invece di generare errori di valore e confondere l'utente, visualizzeremo un'istruzione che suggerirà all'utente di riprovare e daremo all'utente la possibilità di provare a inserire nuovamente i numeri.
Python3
stringa su int in Java
num1>=> int>(>input>(>'Enter num1: '>))> num2>=> int>(>input>(>'Enter num2: '>))> answer>=> f>'{num1} / {num2} = {num1 / num2}'> print>(answer)> |
>
>
Produzione
Enter num1: 1 Enter num2: b Traceback (most recent call last): File 'D:/PycharmProjects/pythonProject2/main.py', line 15, in num2 = int(input('Enter num2: ')) ValueError: invalid literal for int() with base 10: 'b'> Usando try, tranne e altro
In questo codice, il ciclo while viene eseguito perché vogliamo consentire all'utente di provare finché l'input non viene fornito nel modo corretto. Abbiamo utilizzato la clausola 'try'. La clausola try controlla gli errori nelle righe di quella clausola.
Se viene rilevata un'eccezione, passa alla clausola 'eccetto' e stampa il messaggio di errore da noi fornito. Abbiamo scritto due clausole eccetto, una con ValueError e l'altra con ZeroDivisionError. Ognuna di queste clausole tratta le rispettive eccezioni e stampa i rispettivi messaggi.
Poi, infine, abbiamo scritto la clausola else. Se non viene riscontrato alcun errore, viene eseguito il blocco else. Nel blocco else stampiamo il quoziente della divisione e usciamo dal ciclo.
Python3
while> True>:> >try>:> >num1>=> int>(>input>(>'Enter num1: '>))> >num2>=> int>(>input>(>'Enter num2: '>))> >answer>=> f>'{num1} / {num2} = {num1 / num2}'> >except> ValueError as e:> >print>(>'Try putting an integer value.
Error Occured:'>, e)> >except> ZeroDivisionError as ex:> >print>(>'Division by zero is invalid!
Error Occured:'>, ex)> >else>:> >print>(answer)> >break> |
>
attore di ariete
>
Produzione:

Eccezioni di stampa
Ora, dopo aver visto cosa sono esattamente le eccezioni, come appaiono e come gestirle, daremo un'occhiata a stamparle.
Per stampare le Eccezioni, usiamo 'COME' parola chiave di Python.
Abbiamo usato lo stesso esempio che abbiamo usato prima. Abbiamo utilizzato la parola chiave 'as' e dichiarato la variabile 've' per 'ValueError' e 'zde' per 'ZeroDivisionError'. Quindi, se incontriamo qualche eccezione, abbiamo scritto il codice per stampare quell'eccezione. Tuttavia, non siamo in grado di vedere il tipo di eccezione che abbiamo ottenuto.
Python3
while> True>:> >try>:> >num1>=> int>(>input>(>'Enter num1: '>))> >num2>=> int>(>input>(>'Enter num2: '>))> >answer>=> f>'{num1} / {num2} = {num1 / num2}'> >except> ValueError as ve:> >print>(ve)> >except> ZeroDivisionError as zde:> >print>(zde)> >else>:> >print>(answer)> >break> |
>
>
Produzione:
un array in Java
Enter num1: a invalid literal for int() with base 10: 'a' Enter num1: 0 Enter num2: 0 division by zero Enter num1: 16 Enter num2: 4 16 / 4 = 4.0>
Tipo di eccezione di stampa
Per vedere il tipo di eccezione, possiamo usare la funzione type().
Qui abbiamo utilizzato la funzione type() per conoscere il tipo di eccezione che abbiamo riscontrato durante l'esecuzione del codice.
Python3
while> True>:> >try>:> >num1>=> int>(>input>(>'Enter num1: '>))> >num2>=> int>(>input>(>'Enter num2: '>))> >answer>=> f>'{num1} / {num2} = {num1 / num2}'> >except> ValueError as ve:> >print>(>type>(ve), ve)> >except> ZeroDivisionError as zde:> >print>(>type>(zde), zde)> >else>:> >print>(answer)> >break> |
>
>
Produzione
Enter num1: a invalid literal for int() with base 10: 'a' Enter num1: 1 Enter num2: 0 division by zero Enter num1: 4 Enter num2: 2 4 / 2 = 2.0>