logo

Python drukas izņēmums

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:

Ekrānuzņēmums no-2023-10-16-12-36-50

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>