Una excepció és un esdeveniment inesperat que es produeix durant l'execució del programa. També es coneix com a error de temps d'execució. Quan es produeix aquest error, Python genera una excepció durant l'execució i que es pot gestionar, la qual cosa evita que el vostre programa s'interrompi. En aquest article, ens centrarem a 'Com podem imprimir una excepció a Python?'
Què és l'excepció a Python?
En Python , L'excepció és un tipus d'error al programa. Un error s'anomena 'excepció' quan el programa és sintàcticament correcte, però es produeix un error en executar-lo.
Exemple : A l'exemple, estem intentant dividir un nombre per zero perquè doni un error d'execució.
Python 3
num1>=> 5> num2>=> 0> print>(num1>/> num2)> |
>
>
Sortida
Traceback (most recent call last): File 'Solution.py', line 5, in print(num1 / num2) ZeroDivisionError : division by zero>
Aquest programa és sintàcticament correcte . L'únic problema aquí es deu als números que s'utilitzen per a l'operació. Com que no podem dividir cap nombre per 0, genera un error. Per tant, aquest és un exemple d''Excepció'.
Com són les excepcions?
Al programa anterior, quan el vam executar, vam tenir una excepció. L'error que es va llançar mostrava la línia en què es va produir l'error, la línia exacta i el tipus d'error.
El tipus d'error que es va mostrar s'anomena 'Excepció'. A través d'Excepcions, coneixem el problema que s'ha produït. L'excepció del programa anterior és ZeroDivisionError: divisió per zero .
Exemple : Aquí, l'assignació de la variable var1 la fa an variable indefinida , var2.
Python 3
var1>=> var2> |
cercador i exemples
>
>
Sortida
Traceback (most recent call last): File 'Solution.py', line 2, in var1 = var2 NameError: name 'var2' is not defined>
A dalt, podem veure l'excepció com NameError: el nom 'var2' no està definit .
Gestió d'excepcions en Python
Les excepcions poden ser molt molestes de vegades. Aquí és on entra en joc el concepte de gestió d'excepcions. Mitjançant la gestió d'excepcions, podem gestionar fàcilment les excepcions per a l'usuari en lloc de només llançar errors a l'usuari.
Exemple: En aquest programa, l'entrada es pren en el tipus 'int'. Però si hi introduïm un caràcter, llançarà un 'ValueError'. Això pot confondre l'usuari moltes vegades. Aquí és on fem la gestió d'excepcions. En lloc de llançar un error de valor i confondre l'usuari, mostrarem una declaració suggerint que l'usuari torni a intentar-ho i li donarem l'oportunitat de tornar a intentar introduir els números.
Python 3
num1>=> int>(>input>(>'Enter num1: '>))> num2>=> int>(>input>(>'Enter num2: '>))> answer>=> f>'{num1} / {num2} = {num1 / num2}'> print>(answer)> |
>
>
Sortida
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'> Utilitzant try, excepte i else
En aquest codi, el bucle while s'executa perquè volem que l'usuari ho provi fins que l'entrada es doni de la manera correcta. Hem utilitzat la clàusula 'try'. La clàusula try comprova els errors a les línies d'aquesta clàusula.
Si es troba una excepció, salta a la clàusula 'excepte' i imprimeix el missatge d'error proporcionat per nosaltres. Hem escrit dues clàusules excepte, una amb ValueError i l'altra amb ZeroDivisionError. Cadascuna d'aquestes clàusules tracta les excepcions respectives i imprimeix els missatges respectius.
Rajinikanth
Després, finalment, hem escrit la clàusula else. Si no es troba cap error, s'executa el bloc else. Al bloc else, imprimim el quocient de la divisió i sortim del bucle.
Python 3
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> |
>
>
Sortida:

Excepcions d'impressió
Ara, com hem vist quines són exactament les excepcions, com es veuen i com gestionar-les, ara veurem com imprimir-les.
Per imprimir les excepcions, fem servir 'com' paraula clau de Python.
Hem fet servir el mateix exemple que abans. Hem utilitzat la paraula clau 'com' i hem declarat la variable 've' per a 'ValueError' i 'zde' per a 'ZeroDivisionError'. Aleshores, si ens trobem amb alguna excepció, hem escrit el codi per imprimir aquesta excepció. Però tot i així, no podem veure el tipus d'excepció que tenim.
Python 3
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> |
>
>
Sortida:
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>
Tipus d'excepció d'impressió
Per veure el tipus d'excepció, podem utilitzar la funció type().
Aquí hem utilitzat la funció type() per conèixer el tipus d'excepció que hem trobat durant l'execució del codi.
Python 3
convertir de cadena a nombre enter java
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> |
>
>
Sortida
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>