Maison  >  Article  >  développement back-end  >  La différence entre les exceptions et les erreurs Python

La différence entre les exceptions et les erreurs Python

藏色散人
藏色散人original
2019-07-03 09:25:455162parcourir

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', e

cas 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 NameError

try--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_blockN

try-sauf--sinon utiliser

try:
    try_suite
except Exception1 [e]:
    exception_block1
else:
    none_exception

S'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_finally

1. 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_finally

1 Si l'instruction try n'intercepte pas l'exception, après avoir exécuté le segment de code try, exécutez. enfin

2. Si le try détecte l'exception, exécutez-le d'abord sauf gère l'erreur, puis exécute finalement

try-sauf-else-finally utilise :

try:
    try_suite
except:
    do_except
else:
    do_else
finally:
    do_finally

1. 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 enfin

2 Si try détecte une exception, exécutez d'abord sauf pour gérer l'erreur, puis exécutez enfin

avec instruction

avec instruction :

avec contexte [as var]:

with_suite

1. 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 exceptions

Format de grammaire : raise [ exception [, args]]

exception : classe d'exception

args : tuple décrivant les informations d'exception

Exemple :

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 Python

Exceptions 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' % e

Recommandations 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn