Et unntak er en uventet hendelse, som oppstår under kjøringen av programmet. Det er også kjent som en kjøretidsfeil . Når den feilen oppstår, Python genererer et unntak under kjøringen og som kan håndteres, noe som forhindrer programmet i å avbryte.
Eksempel: I denne koden kan ikke systemet dele tallet med null, så et unntak oppstår.
Python3
a>=> 5> b>=> 0> print>(a>/>b)> |
>
>
Produksjon
Traceback (most recent call last): File '/home/8a10be6ca075391a8b174e0987a3e7f5.py', line 3, in print(a/b) ZeroDivisionError: division by zero>
Unntakshåndtering med prøve, unntatt, annet, og til slutt
- Prøve : Denne blokken vil teste at den unntatte feilen oppstår
- Unntatt : Her kan du håndtere feilen
- Ellers : Hvis det ikke er noe unntak, vil denne blokken bli utført
- Endelig : Til slutt blir blokk alltid utført enten unntak genereres eller ikke
Python Prøv, Unntatt, annet og til slutt Syntax
try: # Some Code.... except: # optional block # Handling of exception (if required) else: # execute if no exception finally: # Some code .....(always executed)>
Arbeidet med ' prøve' og 'unntatt'
La oss først forstå hvordan Python prøv og unntatt virker
- Først prøve klausulen utføres, dvs. koden mellom prøve og unntatt klausul.
- Hvis det ikke er noe unntak, så bare prøve klausulen vil kjøre, unntatt klausulen vil ikke bli utført.
- Hvis et unntak oppstår, prøve klausul vil bli hoppet over og unntatt klausulen vil kjøre.
- Hvis noen unntak oppstår, men unntatt klausulen i koden håndterer den ikke, den sendes videre til den ytre prøve uttalelser. Hvis unntaket ikke blir håndtert, stopper utførelsen.
- EN prøve uttalelsen kan ha mer enn én unntatt klausul.
Eksempel: La oss prøve å ta brukerinndata for heltall og kaste unntaket i unntatt blokk.
Python3
mysql oppdatering bli med
# 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>)> |
>
>
Produksjon:
Yeah ! Your answer is : 1 Sorry ! You are dividing by zero>
Fang flere unntak i Python
Her er et eksempel som viser hvordan du bruker flere unntatt klausuler for å håndtere forskjellige unntak:
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}'>)> |
>
>
Produksjon:
Enter a number: An error occurred: EOF when reading a line>
Andre klausuler i Python
Koden går bare inn i else-blokken hvis try-leddet ikke gir et unntak.
Eksempel: Ellers vil blokkeringen utføres bare når det ikke forekommer noe unntak .
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>)> |
>
>
Produksjon:
Yeah ! Your answer is : 1 Sorry ! You are dividing by zero>
Python endelig nøkkelord
Python gir et nøkkelord endelig , som er alltid henrettet etter forsøk og unntatt blokker. Den endelige blokken utføres alltid etter normal avslutning av prøveblokken eller etter at prøveblokken avsluttes på grunn av et unntak. Selv om du returnerer i unntatt-blokken vil den endelige blokken fortsatt utføres
Eksempel: La oss prøve å kaste unntaket i unntatt blokk og Til slutt vil utføre enten unntaket vil generere eller ikke
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>)> |
>
>
Produksjon:
Yeah ! Your answer is : 1 This is always executed Sorry ! You are dividing by zero This is always executed>