logo

Python-afdrukuitzondering

Een uitzondering is een onverwachte gebeurtenis die optreedt tijdens de uitvoering van het programma. Dit wordt ook wel een runtimefout genoemd. Wanneer die fout optreedt, genereert Python een uitzondering tijdens de uitvoering en die kan worden afgehandeld, waardoor uw programma niet wordt onderbroken. In dit artikel gaan we ons concentreren op ‘Hoe kunnen we een uitzondering afdrukken in Python?’

Wat is uitzondering in Python?

In Python , Uitzondering is een type fout in het programma. Een fout wordt een ‘uitzondering’ genoemd als het programma syntactisch correct is, maar er een fout optreedt tijdens de uitvoering ervan.



Voorbeeld : In het voorbeeld proberen we een getal door nul te delen, zodat er een runtime-fout ontstaat.

java een string omkeren

Python3








num1>=> 5> num2>=> 0> print>(num1>/> num2)>

>

>

Uitvoer

Traceback (most recent call last):  File 'Solution.py', line 5, in   print(num1 / num2)   ZeroDivisionError  : division by zero>

Dit programma is syntactisch correct . Het enige probleem hier is te wijten aan de nummers die voor de bediening worden gebruikt. Omdat we geen enkel getal door 0 kunnen delen, wordt er een fout gegenereerd. Dit is dus een voorbeeld van ‘uitzondering’.

Hoe zien uitzonderingen eruit?

In het bovenstaande programma kregen we, toen we het uitvoerden, een uitzondering. De fout die werd gegenereerd, toonde de regel waarop de fout optrad, de exacte regel en het fouttype.

Het fouttype dat werd getoond, wordt de ‘Uitzondering’ genoemd. Via uitzonderingen komen we op de hoogte van het probleem dat is opgetreden. De uitzondering in het bovenstaande programma is ZeroDivisionError: delen door nul .

Voorbeeld : Hier wordt de toewijzing van de variabele var1 gedaan door an ongedefinieerde variabele , var2.

Python3




var1>=> var2>

>

>

Uitvoer

Traceback (most recent call last):  File 'Solution.py', line 2, in   var1 = var2 NameError: name 'var2' is not defined>

Hierboven kunnen we de uitzondering zien als NameError: naam ‘var2’ is niet gedefinieerd .

Afhandeling van uitzonderingen in Python

Uitzonderingen kunnen soms erg vervelend zijn. Hier komt het concept van Exception Handling om de hoek kijken. Via Exception Handling kunnen we de uitzonderingen voor de gebruiker eenvoudig afhandelen in plaats van alleen maar fouten naar de gebruiker te gooien.

Voorbeeld : In dit programma wordt de invoer genomen in het type ‘int’. Maar als we er een karakter in invoeren, zal het een ‘ValueError’ genereren. Dit kan de gebruiker vaak in verwarring brengen. Hier doen we de uitzonderingsafhandeling. In plaats van een waardefout te genereren en de gebruiker in verwarring te brengen, zullen we een verklaring weergeven waarin de gebruiker wordt voorgesteld het opnieuw te proberen en geven we de gebruiker de kans om te proberen de cijfers opnieuw in te voeren.

Python3




num1>=> int>(>input>(>'Enter num1: '>))> num2>=> int>(>input>(>'Enter num2: '>))> answer>=> f>'{num1} / {num2} = {num1 / num2}'> print>(answer)>

>

>

Uitvoer

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'>

Gebruik try, behalve en else

In deze code wordt de while-lus uitgevoerd omdat we de gebruiker willen laten proberen totdat de invoer op de juiste manier is opgegeven. We hebben de 'try'-clausule gebruikt. De try-clausule controleert op fouten in de regels in die clausule.

Als er een uitzondering wordt aangetroffen, springt het naar de ‘except’-clausule en wordt het door ons verstrekte foutbericht afgedrukt. We hebben twee uitzonderingsclausules geschreven, één met de ValueError en de andere met de ZeroDivisionError. Elk van deze clausules behandelt de respectieve uitzonderingen en drukt de respectieve berichten af.

Vervolgens hebben we ten slotte de else-clausule geschreven. Als er geen fout wordt aangetroffen, wordt het else-blok uitgevoerd. In het else-blok drukken we het quotiënt van de deling af en breken we uit de lus.

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>

>

>

Uitgang:

Screenshot-van-2023-10-16-12-36-50

Uitzonderingen bij afdrukken

Nu we hebben gezien wat uitzonderingen precies zijn, hoe ze eruit zien en hoe we ermee om moeten gaan, gaan we nu kijken naar het afdrukken ervan.

Om de uitzonderingen af ​​te drukken, gebruiken we 'als' trefwoord van Python.

We hebben hetzelfde voorbeeld gebruikt als eerder. We hebben het trefwoord ‘as’ gebruikt en de variabele ‘ve’ gedeclareerd voor ‘ValueError’ en ‘zde’ voor ‘ZeroDivisionError’. Als we vervolgens uitzonderingen tegenkomen, hebben we de code geschreven om die uitzondering af te drukken. Maar toch kunnen we het type uitzondering dat we hebben niet zien.

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>

>

>

Uitgang:

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>

Uitzonderingstype voor afdrukken

Om het uitzonderingstype te zien, kunnen we de functie type() gebruiken.

Hier hebben we de functie type() gebruikt om te weten welk type uitzondering we zijn tegengekomen tijdens het uitvoeren van de code.

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>

powershell kleiner dan of gelijk aan
>

>

Uitvoer

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>