logo

Prøv, Undtagen, andet og Endelig i Python

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, Python genererer en undtagelse under udførelsen, og som kan håndteres, hvilket forhindrer dit program i at afbryde.

Eksempel: I denne kode kan systemet ikke dividere tallet med nul, så en undtagelse hæves.



Python3








a>=> 5> b>=> 0> print>(a>/>b)>

>

>

Produktion

Traceback (most recent call last): File '/home/8a10be6ca075391a8b174e0987a3e7f5.py', line 3, in print(a/b) ZeroDivisionError: division by zero>

Undtagelseshåndtering med try, except, else, and finally

  • Prøve : Denne blok vil teste, at den undtaget fejl opstår
  • Undtagen : Her kan du håndtere fejlen
  • Andet : Hvis der ikke er nogen undtagelse, vil denne blok blive udført
  • Endelig : Endelig bliver blok altid udført enten en undtagelse genereres eller ej

Python Try, Except, else og Endelig Syntax

try: # Some Code.... except: # optional block # Handling of exception (if required) else: # execute if no exception finally: # Some code .....(always executed)>

Arbejde med ' prøve' og 'undtagen'

Lad os først forstå, hvordan Python prøv og undtagen arbejder

  • Først prøve klausul udføres dvs. koden mellem prøve og undtagen klausul.
  • Hvis der ikke er nogen undtagelse, så kun prøve klausul vil køre, undtagen klausulen bliver ikke udført.
  • Hvis der opstår en undtagelse, prøve klausul vil blive sprunget over og undtagen klausul vil køre.
  • Hvis der opstår en undtagelse, men undtagen klausul i koden håndterer det ikke, det videregives til det ydre prøve udsagn. Hvis undtagelsen ikke behandles, stopper udførelsen.
  • EN prøve erklæring kan have mere end én undtagen klausul.

Eksempel: Lad os prøve at tage brugerens heltal input og smide undtagelsen i undtagen blok.

Python3




en række objekter java
# Python code to illustrate working of try()> def> divide(x, y):> >try>:> ># Floor Division : Gives only Fractional> ># Part as Answer> >result>=> x>/>/> y> >print>(>'Yeah ! Your answer is :'>, result)> >except> ZeroDivisionError:> >print>(>'Sorry ! You are dividing by zero '>)> > # Look at parameters and note the working of Program> divide(>3>,>2>)> divide(>3>,>0>)>

>

>

Produktion:

Yeah ! Your answer is : 1 Sorry ! You are dividing by zero>

Fang flere undtagelser i Python

Her er et eksempel, der viser, hvordan man bruger flere undtagen klausuler til at håndtere forskellige undtagelser:

Python3




try>:> >x>=> int>(>input>(>'Enter a number: '>))> >result>=> 10> /> x> except> ZeroDivisionError:> >print>(>'You cannot divide by zero.'>)> except> ValueError:> >print>(>'Invalid input. Please enter a valid number.'>)> except> Exception as e:> >print>(f>'An error occurred: {e}'>)>

>

>

Produktion:

Enter a number: An error occurred: EOF when reading a line>

Andre klausuler i Python

Koden går kun ind i else-blokken, hvis try-sætningen ikke rejser en undtagelse.

Eksempel: Ellers vil blokering udføres kun når der ikke er nogen undtagelse .

Python3




# Python code to illustrate working of try()> def> divide(x, y):> >try>:> ># Floor Division : Gives only Fractional> ># Part as Answer> >result>=> x>/>/> y> >except> ZeroDivisionError:> >print>(>'Sorry ! You are dividing by zero '>)> >else>:> >print>(>'Yeah ! Your answer is :'>, result)> > # Look at parameters and note the working of Program> divide(>3>,>2>)> divide(>3>,>0>)>

>

>

Produktion:

Yeah ! Your answer is : 1 Sorry ! You are dividing by zero>

Python endelig søgeord

Python giver et nøgleord endelig , som er altid henrettet efter forsøg og undtagen blokke. Den endelige blok udføres altid efter normal afslutning af prøveblokken eller efter at prøveblokken afsluttes på grund af en undtagelse. Selvom du vender tilbage i undtagen blokken, vil den endelige blok stadig udføres

Eksempel: Lad os prøve at smide undtagelsen ind undtagen blok og til sidst vil udføre enten undtagelsen vil generere eller ej

Python3




# Python code to illustrate> # working of try()> def> divide(x, y):> >try>:> ># Floor Division : Gives only Fractional> ># Part as Answer> >result>=> x>/>/> y> >except> ZeroDivisionError:> >print>(>'Sorry ! You are dividing by zero '>)> >else>:> >print>(>'Yeah ! Your answer is :'>, result)> >finally>:> ># this block is always executed> ># regardless of exception generation.> >print>(>'This is always executed'>)> # Look at parameters and note the working of Program> divide(>3>,>2>)> divide(>3>,>0>)>

>

>

Produktion:

Yeah ! Your answer is : 1 This is always executed Sorry ! You are dividing by zero This is always executed>