Fel i Python kan vara av två typer, dvs syntaxfel och undantag. Fel är de problem i ett program som gör att programmet stoppar exekveringen. Å andra sidan görs undantag när vissa interna händelser inträffar som ändrar programmets normala flöde.
Notera: För mer information, se Fel och undantag i Python
Några av de vanliga undantagsfelen är:
- IOError: om filen inte kan öppnas KeyboardInterrupt: när en oönskad tangent trycks ned av användaren ValueError: när den inbyggda funktionen får ett felaktigt argument EOFError: om End-Of-File träffas utan att läsa någon data ImportError: om den kan inte hitta modulen
Prova utom i Python
Try and Except-satsen används för att hantera dessa fel i vår kod i Python. Try-blocket används för att kontrollera någon kod för fel, dvs koden inuti try-blocket kommer att köras när det inte finns något fel i programmet. Medan koden i except-blocket kommer att köras när programmet stöter på något fel i föregående försöksblock.
Syntax:
try: # Some Code except: # Executed if error in the # try block>
Hur fungerar try()?
- Först, den Prova klausul exekveras, dvs koden mellan Prova.
- Om det inte finns något undantag, då bara Prova klausul kommer att köras, bortsett från klausulen är klar.
- Om något undantag inträffar, Prova klausul kommer att hoppas över och bortsett från klausul kommer att köras.
- Om något undantag inträffar, men bortsett från klausul i koden hanterar det inte, den skickas vidare till det yttre Prova uttalanden. Om undantaget inte hanteras stoppas exekveringen.
- A Prova uttalande kan ha mer än ett bortsett från klausul
Kod 1: Inget undantag, så Prova klausul kommer att köras.
Python3
år in i kvartalen
# 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> )> |
>
>
Hjälputrymme: O(1)
Utgång:
Yeah ! Your answer is : 1>
Kod 1: Det finns ett undantag så bara bortsett från klausul kommer att köras.
Python3
# 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> ,> 0> )> |
>
>
Utgång:
Sorry ! You are dividing by zero>
Kod 2: Det andra sättet att skriva bortsett från uttalande, visas nedan och på detta sätt accepterar den bara undantag som du är menad att fånga eller så kan du kontrollera vilket fel som uppstår.
Python3
linux operativsystem
# code> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional Part as Answer> > result> => x> /> /> y> > print> (> 'Yeah ! Your answer is :'> , result)> > except> Exception as e:> > # By this way we can know about the type of error occurring> > print> (> 'The error is: '> ,e)> > divide(> 3> ,> 'GFG'> )> divide(> 3> ,> 0> )> |
>
>
Produktion:
The error is: unsupported operand type(s) for //: 'int' and 'str' The error is: integer division or modulo by zero>
Annars klausul
I Python kan du också använda else-satsen på try-except-blocket som måste finnas efter alla undantagssatser. Koden går in i else-blocket endast om try-satsen inte ger upphov till ett undantag.
rensa npm-cache
Syntax:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception>
Koda:
Python3
# Program to depict else clause with try-except> > # Function which returns a/b> def> AbyB(a , b):> > try> :> > c> => ((a> +> b)> /> /> (a> -> b))> > except> ZeroDivisionError:> > print> (> 'a/b result in 0'> )> > else> :> > print> (c)> > # Driver program to test above function> AbyB(> 2.0> ,> 3.0> )> AbyB(> 3.0> ,> 3.0> )> |
>
>
Produktion:
-5.0 a/b result in 0>
Äntligen Nyckelord i Python
Python tillhandahåller slutligen ett nyckelord, som alltid exekveras efter försöket och förutom block. Det sista blocket körs alltid efter den normala avslutningen av försöksblocket eller efter att försöksblocket avslutats på grund av vissa undantag.
Syntax:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception finally: # Some code .....(always executed)>
Koda:
Python3
"vad är 10 av 100"
# Python program to demonstrate finally> > # No exception Exception raised in try block> try> :> > k> => 5> /> /> 0> # raises divide by zero exception.> > print> (k)> > # handles zerodivision exception> except> ZeroDivisionError:> > print> (> 'Can't divide by zero'> )> > finally> :> > # this block is always executed> > # regardless of exception generation.> > print> (> 'This is always executed'> )> |
>
>
Produktion:
Can't divide by zero This is always executed>
Relaterade artiklar:
- Utgångsfrågor
- Undantagshantering i Python
- Användardefinierade undantag