Les erreurs en Python peuvent être de deux types, à savoir les erreurs de syntaxe et les exceptions. Les erreurs sont des problèmes dans un programme à cause desquels le programme arrêtera son exécution. D'un autre côté, des exceptions sont déclenchées lorsque certains événements internes se produisent et modifient le déroulement normal du programme.
Note: Pour plus d'informations, reportez-vous à Erreurs et exceptions en Python
Certaines des erreurs d'exception courantes sont :
- IOError : si le fichier ne peut pas être ouvert KeyboardInterrupt : lorsqu'une touche non requise est enfoncée par l'utilisateur ValueError : lorsque la fonction intégrée reçoit un argument erroné EOFError : si la fin du fichier est atteinte sans lire aucune donnée ImportError : si il n'arrive pas à trouver le module
Essayez sauf en Python
L'instruction Try et Except est utilisée pour gérer ces erreurs dans notre code en Python. Le bloc try est utilisé pour vérifier les erreurs dans certains codes, c'est-à-dire que le code à l'intérieur du bloc try s'exécutera lorsqu'il n'y aura pas d'erreur dans le programme. Alors que le code à l’intérieur du bloc except s’exécutera chaque fois que le programme rencontrera une erreur dans le bloc try précédent.
Syntaxe:
try: # Some Code except: # Executed if error in the # try block>
Comment fonctionne try() ?
- Premièrement la essayer la clause est exécutée, c'est-à-dire le code entre essayer.
- S'il n'y a pas d'exception, alors seul le essayer la clause sera exécutée, sauf la clause est terminée.
- Si une exception se produit, le essayer la clause sera ignorée et sauf la clause sera exécutée.
- Si une exception se produit, mais que le sauf La clause dans le code ne le gère pas, elle est transmise au serveur externe. essayer déclarations. Si l'exception n'est pas gérée, l'exécution s'arrête.
- UN essayer l'instruction peut en avoir plusieurs sauf clause
Codage 1 : Aucune exception, donc le essayer la clause sera exécutée.
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>,>2>)> |
>
>
Espace auxiliaire : O(1)
Sortir :
Yeah ! Your answer is : 1>
Codage 1 : Il y a une exception donc seulement sauf la clause sera exécutée.
base de données
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>)> |
>
apache
>
Sortir :
Sorry ! You are dividing by zero>
Code 2 : L'autre façon d'écrire sauf déclaration, est illustrée ci-dessous et de cette manière, elle n'accepte que les exceptions que vous êtes censé intercepter ou vous pouvez vérifier quelle erreur se produit.
Python3
# 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>)> |
>
>
Sortir:
The error is: unsupported operand type(s) for //: 'int' and 'str' The error is: integer division or modulo by zero>
Clause Sinon
En Python, vous pouvez également utiliser la clause else sur le bloc try-sauf qui doit être présente après toutes les clauses except. Le code entre dans le bloc else uniquement si la clause try ne déclenche pas d'exception.
Syntaxe:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception>
Code:
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>)> |
>
>
Sortir:
-5.0 a/b result in 0>
Enfin le mot-clé en Python
Python fournit enfin un mot-clé, qui est toujours exécuté après les blocs try et except. Le bloc final s'exécute toujours après la fin normale du bloc try ou après la fin du bloc try en raison de certaines exceptions.
Syntaxe:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception finally: # Some code .....(always executed)>
Code:
Python3
monliviricket
# 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'>)> |
>
>
Sortir:
Can't divide by zero This is always executed>
Articles Liés:
- Questions de sortie
- Gestion des exceptions en Python
- Exceptions définies par l'utilisateur