Maison > Article > développement back-end > La différence entre les exceptions et les erreurs Python
Concepts d'erreur et d'exception
Erreur :
1. Erreur de syntaxe : le code fait non conforme à la syntaxe de l'interpréteur ou du compilateur
2. Erreur logique : problème de saisie ou de calcul incomplet ou illégal
Exception : des milliers d'objets apparaissent pendant l'exécution, provoquant l'échec de l'exécution du programme
1. Le programme rencontre des problèmes de logique ou d'algorithme
2. Erreurs informatiques pendant le fonctionnement (mémoire insuffisante ou erreurs d'E/S)
La différence entre les erreurs et les exceptions
Erreur :
Erreur de syntaxe ou de logique avant l'exécution du code,
Les erreurs de grammaire doivent être modifiées avant l'exécution, les erreurs logiques ne peuvent pas être modifiées
Les exceptions sont divisé en deux étapes :
1. Génération d'exception, une erreur est détectée et l'interpréteur la considère comme une exception, et une exception est levée
2. Gestion des exceptions, interception des exceptions, ignorer ou ; terminer le programme pour gérer les exceptions
Erreurs courantes en Python
Erreurs courantes :
sous ipython 1. a : NameError
Référencement direct à
lorsqu'une variable n'est pas définie 2. si True : SyntaxError
Erreur de syntaxe utiliser utiliser utiliser utiliser ‐ ‐ ‐ ‐ ‐ ‐ Erreur de syntaxe > 4. 10/0 : ZeroDivisionError
5 . a = int('dd'): ValueError
Erreur rencontrée lors de l'exécution d'une conversion de type forcée
try- -sauf gestion des exceptions (1)
try-sauf : exception manipulation
try: try_suite except Exception [, e]: exception_block
1.try est utilisé pour capturer les erreurs dans try_suite et les transmettre à l'exception de la gestion
2.sauf est utilisé pour gérer les exceptions si la gestion des exceptions est cohérente avec la définition de la. exception capturée, utilisez exception_block pour gérer l'exception
Exemple :
try: a except Exception, e: print e
analyse de l'exception de capture try-sauf :
Cas 1 :
try: undef except: print 'catch an except'
Cas 2 :
try: if undef except: print 'catch an except'
cas 1 : L'exception peut être interceptée car il s'agit d'une erreur d'exécution
cas 2 : L'exception ne peut pas être interceptée car il s'agit d'une erreur de syntaxe Exécuter l'erreur précédente
Cas 3 :try: undef except NameError, e: print 'catch an except', e Case 4: try: undef except IOError, e: print 'catch an except', ecas 3 : L'exception peut être interceptée car l'exception catch NameError est définie cas 4 : L'exception ne peut pas être interceptée car l'IOError est définie et ne sera pas gérée NameErrortry--sauf gestion des exceptions (2) try-sauf : gérer plusieurs exceptions
try: try_suite except Exception1 [e]: exception_block1 except Exception2 [e]: exception_block2 except ExceptionN [e]: exception_blockNtry-sauf--sinon utiliser
try: try_suite except Exception1 [e]: exception_block1 else: none_exceptionS'il n'y a pas d'exception, exécutez le code dans l'instruction else instruction try--finally instruction try-finally :
try: try_suite finally: do_finally1. Si l'instruction try ne capture pas l'erreur et le code exécute l'instruction do_finally 2. Si l'instruction try capture l'erreur, le programme exécute d'abord l'instruction do_finally, puis transmet l'erreur capturée au python. interpréteur pour le traitement Instruction try-finally : Règle : try-finally exécutera le code final, qu'une exception soit détectée ou non. Fonction : Fournit un mécanisme de nettoyage pour événements de gestion des exceptions pour fermer des fichiers ou libérer des ressources système
try-sauf-finally utilise :
try: try_suite except: do_except finally: do_finally1 Si l'instruction try n'intercepte pas l'exception, après avoir exécuté le segment de code try, exécutez. enfin2. Si le try détecte l'exception, exécutez-le d'abord sauf gère l'erreur, puis exécute finalementtry-sauf-else-finally utilise :
try: try_suite except: do_except else: do_else finally: do_finally1. Si l'instruction try n'attrape pas l'exception, après avoir exécuté le bloc de code try, exécutez le bloc de code else, Enfin, exécutez enfin2 Si try détecte une exception, exécutez d'abord sauf pour gérer l'erreur, puis exécutez enfinavec instruction avec instruction : avec contexte [as var]: with_suite1. L'instruction with est utilisée pour remplacer l'instruction try-sauf-finally, ce qui rend le code plus concis 2 L'expression contextuelle renvoie Un objet 3.var est utilisé pour enregistrer le. objet de retour de contexte, une seule valeur de retour ou un tuple ;4.with_suite utilise la variable var pour opérer sur l'objet de retour de contexte ...
raise et assert
instruction raise l'instruction raise est utilisée pour lancer activement des exceptionsFormat de grammaire : raise [ exception [, args]]
exception : classe d'exceptionargs : tuple décrivant les informations d'exceptionExemple :raise TypeError raise TypeError, 'Test Error' raise IOError, 'File Not Exist'instruction d'assert
Instruction d'assertion : l'instruction assert est utilisée pour vérifier si l'expression est vraie. Si elle est fausse, une AssertionError est levée Format de grammaire : assert expression [, args]expression : expression args : informations de description. des conditions de jugement Exemple :
assert 7==6 assert 0, 'Test Error'Exceptions standard et personnalisées PythonExceptions standard : exceptions intégrées Python, exécution de programme Existe déjà Exceptions personnalisées : 1. python permet aux exceptions personnalisées de décrire des situations anormales non impliquées dans python 2. Les exceptions personnalisées doivent hériter de la classe Exception 3. activement Exemple d'exception personnalisée :
class FileError(IOError): pass raise FileError, 'Test FileError' class CustomError(Exception): def __init__(self, info): Exception.__init__(self) self.errorinfo = info def __str__(self): return 'CustomError: %s' % self.errorinfo try: raise CustomError('test CustomError') except CustomError, e: print 'Error Info : %s' % eRecommandations associées : "
Tutoriel Python
"Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!