Izņēmums ir neparedzēts notikums, kas notiek programmas izpildes laikā. To sauc arī par izpildes laika kļūdu. Kad rodas šī kļūda, Python izpildes laikā ģenerē izņēmumu, un to var apstrādāt, kas neļauj jūsu programmai pārtraukt darbību. Šajā rakstā mēs pievērsīsimies jautājumam 'Kā mēs varam izdrukāt izņēmumu Python?'
Kas ir izņēmums Python?
In Python , Izņēmums ir programmas kļūdas veids. Kļūdu sauc par “Izņēmumu”, ja programma ir sintaktiski pareiza, bet tās izpildes laikā rodas kļūda.
Piemērs : Piemērā mēs cenšamies dalīt skaitli ar nulli, lai tiktu parādīta izpildlaika kļūda.
Python3
num1>=> 5> num2>=> 0> print>(num1>/> num2)> |
>
>
Izvade
Traceback (most recent call last): File 'Solution.py', line 5, in print(num1 / num2) ZeroDivisionError : division by zero>
Šī programma ir sintaktiski pareiza . Vienīgā problēma šeit ir saistīta ar skaitļiem, kas tiek izmantoti operācijai. Tā kā nevienu skaitli nevar dalīt ar 0, tas rada kļūdu. Tādējādi šis ir “izņēmuma” piemērs.
Kā izskatās izņēmumi?
Iepriekš minētajā programmā, kad mēs to izpildījām, mēs saņēmām izņēmumu. Izmestā kļūda parādīja rindiņu, kurā radās kļūda, precīzu rindiņu un kļūdas veidu.
Parādīto kļūdas veidu sauc par “Izņēmumu”. Izmantojot izņēmumus, mēs uzzinām par radušos problēmu. Izņēmums iepriekš minētajā programmā ir ZeroDivisionError: dalīšana ar nulli .
Piemērs : Šeit mainīgā var1 piešķiršanu veic an nedefinēts mainīgais , var2.
Python3
selēns
var1>=> var2> |
>
>
Izvade
Traceback (most recent call last): File 'Solution.py', line 2, in var1 = var2 NameError: name 'var2' is not defined>
Iepriekš mēs varam redzēt izņēmumu kā NameError: nosaukums “var2” nav definēts .
Izņēmumu apstrāde Python
Izņēmumi dažkārt var būt ļoti apgrūtinoši. Šeit parādās izņēmumu apstrādes jēdziens. Izmantojot izņēmumu apstrādi, mēs varam viegli apstrādāt izņēmumus lietotāja labā, nevis vienkārši radīt kļūdas lietotājam.
Piemērs : Šajā programmā ievade tiek ņemta veidā “int”. Bet, ja mēs tajā ievadīsim rakstzīmi, tas parādīs “ValueError”. Tas var daudzkārt mulsināt lietotāju. Lūk, kur mēs veicam izņēmumu apstrādi. Tā vietā, lai ievadītu vērtības kļūdu un mulsinātu lietotāju, mēs parādīsim paziņojumu, kas ieteiks lietotājam mēģināt vēlreiz, un mēs dosim lietotājam iespēju vēlreiz mēģināt ievadīt skaitļus.
Python3
num1>=> int>(>input>(>'Enter num1: '>))> num2>=> int>(>input>(>'Enter num2: '>))> answer>=> f>'{num1} / {num2} = {num1 / num2}'> print>(answer)> |
>
>
Izvade
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'> Izmantojot izmēģināt, izņemot un citu
Šajā kodā tiek izpildīta cilpa while, jo mēs vēlamies ļaut lietotājam mēģināt, līdz ievade tiek ievadīta pareizajā veidā. Mēs esam izmantojuši klauzulu “mēģināt”. Izmēģinājuma klauzula pārbauda, vai šīs klauzulas rindās nav kļūdu.
Ja tiek konstatēts izņēmums, tas pāriet uz klauzulu “izņemot” un izdrukā mūsu sniegto kļūdas ziņojumu. Mēs esam uzrakstījuši divus, izņemot klauzulas, vienu ar ValueError un otru ar ZeroDivisionError. Katrs no šiem punktiem attiecas uz attiecīgajiem izņēmumiem un izdrukā attiecīgos ziņojumus.
vba
Visbeidzot, mēs esam uzrakstījuši citu klauzulu. Ja kļūda netiek konstatēta, tiek izpildīts cits bloks. Blokā else mēs izdrukājam dalījuma koeficientu un izkļūstam no cilpas.
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> |
>
>
Izvade:

Drukāšanas izņēmumi
Tā kā mēs esam redzējuši, kādi tieši ir izņēmumi, kā tie izskatās un kā ar tiem rīkoties, mēs tagad apskatīsim to drukāšanu.
Lai izdrukātu Izņēmumus, mēs izmantojam 'kā' Python atslēgvārds.
Mēs esam izmantojuši to pašu piemēru, ko izmantojām iepriekš. Mēs esam izmantojuši atslēgvārdu “as” un deklarējuši mainīgo “ve” “ValueError” un “zde” “ZeroDivisionError”. Pēc tam, ja rodas kādi izņēmumi, mēs esam uzrakstījuši kodu, lai izdrukātu šo izņēmumu. Tomēr mēs nevaram redzēt izņēmuma veidu.
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> |
>
>
repl java
Izvade:
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>
Drukāšanas izņēmuma veids
Lai redzētu izņēmuma veidu, mēs varam izmantot funkciju type().
Šeit mēs esam izmantojuši funkciju type (), lai uzzinātu izņēmuma veidu, ar kuru esam saskārušies, palaižot kodu.
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> |
>
>
Izvade
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>