Je connais la commande die()
en PHP qui arrête un script prématurément.
Comment puis-je faire cela en Python ?
import sys
sys.exit()
détails de la documentation du module sys
:
sys.exit([arg])
Sortir de Python. Ceci est implémenté en levant le l'exception
SystemExit
, de sorte que les actions de nettoyage spécifiées par les clauses finally des instructionstry
sont respectées, et il est possible d'intercepter la tentative de sortie à un niveau extérieur. tentative de sortie à un niveau extérieur.L'argument optionnel arg peut être un nombre entier donnant l'état de sortie (par défaut, il vaut zéro), ou un autre type d'objet. S'il s'agit d'un entier, zéro est considéré comme une "terminaison réussie" et toute valeur non nulle est valeur non nulle est considérée comme une " terminaison anormale " par les shells et autres. La plupart des systèmes La plupart des systèmes exigent qu'il soit compris dans la plage 0-127, et produisent des résultats non définis dans le cas contraire. dans le cas contraire. Certains systèmes ont une convention pour attribuer des significations spécifiques à des codes de sortie spécifiques, mais elles sont généralement Les programmes Unix utilisent généralement 2 pour les erreurs de syntaxe de ligne de commande et 1 pour tous les autres types d'erreurs. de commande et 1 pour tous les autres types d'erreurs. Si un autre type d'objet Si un autre type d'objet est passé, None équivaut à passer zéro, et tout autre objet est imprimé dans [
stderd']. tout autre objet est imprimé dans [
stderr][stderr] et entraîne un code de sortie de 1. En particulier,
sys.exit("un message d'erreur")` est un moyen rapide de quitter un programme lorsqu'une erreur survient. une erreur se produit.Puisque
exit()
ne lève finalement " que " une exception, elle ne quittera le processus que si elle est appelée depuis la page principale. le processus que s'il est appelé depuis le thread principal, et que l'exception n'est pas l'exception n'est pas interceptée.
Notez qu'il s'agit de la façon "agréable" de quitter. @glyphtwistedmatrix ci-dessous indique que si vous voulez une 'sortie dure', vous pouvez utiliser os._exit(errorcode), bien qu'il soit probablement spécifique à un système d'exploitation dans une certaine mesure (il pourrait ne pas prendre un code d'erreur sous Windows, par exemple), et il est certainement moins convivial puisqu'il ne laisse pas l'interprète faire le nettoyage avant que le processus ne meure.