92 votes

Comment arrêter un programme lorsqu'une exception est levée en Python ?

Je dois arrêter mon programme lorsqu'une exception est levée en Python. Comment puis-je mettre cela en œuvre ?

88voto

Loïc Wolff Points 1216
import sys

try:
  print("stuff")
except:
  sys.exit(1) # exiting with a non zero value is better for returning from an error

68voto

Abgan Points 2249

Vous pouvez cesser d'attraper l'exception ou, si vous devez l'attraper (pour effectuer un traitement personnalisé), vous pouvez la relancer :

try:
  doSomeEvilThing()
except Exception, e:
  handleException(e)
  raise

Notez que le fait de taper raise sans passer d'objet d'exception, la traceback originale est préservée. Typiquement, c'est beaucoup mieux que raise e .

Bien entendu, vous pouvez également appeler explicitement

import sys 
sys.exit(exitCodeYouFindAppropriate)

Cela entraîne la levée de l'exception SystemExit et (à moins que vous ne la rattrapiez quelque part) met fin à votre application avec le code de sortie spécifié.

26voto

bruno desthuilliers Points 10061

Si vous ne gérez pas une exception, elle se propagera dans la pile d'appels jusqu'à l'interpréteur, qui affichera alors une traceback et sortira. En d'autres termes, vous n'avez pas besoin de faire n'importe quoi pour que votre script sorte lorsqu'une exception se produit.

10voto

Pranab Points 180
import sys

try:
    import feedparser
except:
    print "Error: Cannot import feedparser.\n" 
    sys.exit(1)

Ici, nous sortons avec un code d'état de 1. Il est généralement utile d'afficher un message d'erreur, d'écrire dans un journal et de nettoyer.

5voto

Keltia Points 8104

Pour autant que je sache, si une exception n'est pas capturée par votre script, elle sera interrompue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X