Undtagelse for Python Print

Undtagelse for Python Print

En undtagelse er en uventet hændelse, som opstår under afviklingen af ​​programmet. Det er også kendt som en køretidsfejl. Når den fejl opstår, genererer Python en undtagelse under udførelsen, og den kan håndteres, hvilket forhindrer dit program i at afbryde. I denne artikel skal vi fokusere på 'Hvordan kan vi udskrive en undtagelse i Python?'

Hvad er undtagelse i Python?

I Python , Undtagelse er en type fejl i programmet. En fejl kaldes en 'undtagelse', når programmet er syntaktisk korrekt, men der opstår en fejl, mens det udføres.

Eksempel : I eksemplet forsøger vi at dividere et tal med nul, så det giver en runtime-fejl.

Python3




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

Produktion

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

Dette program er syntaktisk korrekt . Det eneste problem her er på grund af de tal, der bruges til operationen. Da vi ikke kan dividere noget tal med 0, giver det en fejl. Dette er således et eksempel på 'undtagelse'.

Hvordan ser undtagelser ud?

I ovenstående program, da vi udførte det, fik vi en undtagelse. Fejlen, der blev kastet, viste den linje, hvor fejlen opstod, den nøjagtige linje og fejltypen.

Den fejltype, der blev vist, kaldes 'undtagelsen'. Gennem undtagelser får vi at vide om det problem, der er opstået. Undtagelsen i ovenstående program er ZeroDivisionError: division med nul .

Eksempel : Her udføres tildelingen af ​​variablen var1 af en Udefineret variabel , var2.

Python3




var1> => var2>

Produktion

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

Ovenfor kan vi se Undtagelsen som NameError: Navnet 'var2' er ikke defineret .

Undtagelseshåndtering i Python

Undtagelser kan til tider være meget generende. Det er her, konceptet med Exception Handling kommer ind. Gennem Exception Handling kan vi nemt håndtere undtagelserne for brugeren i stedet for blot at smide fejl efter brugeren.

Eksempel: I dette program er input taget i typen 'int'. Men hvis vi indtaster et tegn i det, vil det kaste en 'ValueError'. Dette kan forvirre brugeren mange gange. Det er her, vi udfører undtagelseshåndteringen. I stedet for at smide værdifejl og forvirre brugeren, vil vi vise en erklæring, der foreslår brugeren at prøve igen, og vi vil give brugeren en chance for at prøve at indtaste tallene igen.

Python3




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

Produktion

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' 

Bruger forsøg, undtagen og andet

I denne kode køres while-løkken, fordi vi ønsker at lade brugeren prøve, indtil input er givet på den rigtige måde. Vi har brugt 'try'-sætningen. Try-klausulen kontrollerer for fejlene i linjerne i den sætning.

Hvis der opstår en undtagelse, springer den til 'undtagen'-klausulen og udskriver fejlmeddelelsen fra os. Vi har skrevet to undtagen klausuler, den ene med ValueError og den anden med ZeroDivisionError. Hver af disse klausuler omhandler respektive undtagelser og udskriver de respektive meddelelser.

Så har vi endelig skrevet den anden klausul. Hvis der ikke opstår nogen fejl, udføres den anden blok. I den anden blok udskriver vi divisionens kvotient og bryder ud fra løkken.

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>

Produktion:

Skærmbillede-fra-2023-10-16-12-36-50

Undtagelser for udskrivning

Nu, som vi har set, hvad undtagelser præcist er, hvordan de ser ud, og hvordan man håndterer dem, vil vi nu se på at udskrive dem.

Til at udskrive undtagelserne bruger vi 'som' nøgleord for Python.

Vi har brugt det samme eksempel, som vi brugte før. Vi har brugt nøgleordet 'as' og erklæret variablen 've' for 'ValueError' og 'zde' for 'ZeroDivisionError'. Så, hvis vi støder på nogen undtagelser, har vi skrevet koden for at udskrive denne undtagelse. Men vi er stadig ikke i stand til at se den type undtagelse, vi fik.

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>

Produktion:

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 

Udskrivningsundtagelsestype

For at se undtagelsestypen kan vi bruge type()-funktionen.

Her har vi brugt type()-funktionen til at kende den type undtagelse, vi er stødt på under kørsel af koden.

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>

Produktion

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