Maison  >  Article  >  développement back-end  >  Explication détaillée de cinq mécanismes de gestion des exceptions en python

Explication détaillée de cinq mécanismes de gestion des exceptions en python

高洛峰
高洛峰original
2017-03-17 15:55:521769parcourir

J'ai commencé à apprendre la programmation il y a quelques années, jusqu'à présent, j'ai toujours eu peur et repoussé par la gestion des exceptions dans les programmes. La raison en est un manque de compréhension. Cette fois, lorsque j'attaque python, je liste d'abord les parties qui me font le plus peur et que je connais le moins, y compris la "Gestion des exceptions".

"pe into Python" n'introduit pas spécifiquement la gestion des exceptions, mais ne l'explique que brièvement lorsqu'elle est utilisée dans des exemples. Téléchargez « Apprendre Python » dès aujourd'hui et accédez directement à la gestion des exceptions. Cette partie comprend quatre chapitres. Le premier chapitre explique l'utilisation générale de la gestion des exceptions, et les chapitres suivants discutent de son mécanisme en profondeur. Je n'ai lu que le premier chapitre jusqu'à présent. Je veux d'abord apprendre à l'utiliser, puis en lire davantage si nécessaire.

Python prend principalement en charge cinq mécanismes d'exception, répertoriés un par un.

Le gestionnaire d'exceptions par défaut

le code est le suivant :

s = 'Hello girl!'
print s[100]
print 'continue'

Si nous ne prenons aucune précaution pour les exceptions, alors si une exception se produit pendant l'exécution du programme, elle interrompra le programme, appellera le gestionnaire d'exceptions par défaut de Python et affichera les informations d'exception dans le terminal. Dans ce cas, la ligne 3 du code ne sera pas exécutée.

try…sauf

Le code est le suivant :

s = 'Hello girl!'
try:
 print s[100]
except IndexError:
 print 'error...'
print 'continue'

Lorsque le programme s'exécute jusqu'à la deuxième phrase, il trouve l'instruction try, entre dans le bloc d'instruction try pour l'exécution, et une exception se produit, et revient à try Au niveau de l'instruction, recherchez s'il y a une instruction except derrière elle. Une fois l'instruction except trouvée, ce gestionnaire d'exceptions personnalisé sera appelé. Après que except ait traité l'exception, le programme continue son exécution. Dans ce cas, les deux dernières instructions print seront exécutées.

sauf peut également être vide, indiquant que tout type d'exception est intercepté.

try...finally

Le code est le suivant :

s = 'Hello girl!'
try:
 print s[100]
finally:
 print 'error...'
print 'continue'

L'instructionfinally signifie que les instructions definallydoivent être exécutées indépendamment du fait qu'une exception se produise ou non. Cependant, comme il n'y a pas de gestionnaire except, le programme est interrompu après son exécution finale. Dans ce cas, la deuxième impression sera exécutée, mais la première impression ne sera pas exécutée. S'il n'y a pas d'exception dans l'instruction try, les trois impressions seront exécutées.

assert

Le code est le suivant :

assert False,'error...'
print 'continue'

Cette instruction détermine d'abord si l'instruction qui suit immédiatement l'assertion est vraie ou fausse. Si elle est vraie, continuez. exécutez print.Si c'est False, le programme sera interrompu, le gestionnaire d'exceptions par défaut sera appelé et les informations d'invite après la virgule dans l'instruction assert seront affichées. Dans ce cas, le programme est interrompu, une erreur est générée et les impressions suivantes ne sont pas exécutées.

avec…as

Le code est le suivant :

with open('nothing.txt','r') as f:
 f.read()
 print 2/0
print 'continue'

Lorsque nous utilisons habituellement des flux de type fichier objets , nous devons appeler fermer après utilisation. La méthode est fermée, ce qui est très gênant. L'instruction with...as fournit ici une alternative très pratique : après avoir ouvert le fichier, attribuez l'objet de flux de fichier renvoyé à f, puis utilisez-le dans le bloc d'instruction with. Une fois le bloc d'instructions with terminé, le fichier sera fermé automatiquement et de manière masquée.

Si une exception se produit dans l'instruction with ou le bloc d'instructions, le gestionnaire d'exceptions par défaut sera appelé, mais le fichier sera toujours fermé normalement.

Dans ce cas, une exception sera levée et l'impression finale ne sera pas exécutée.


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