Comment utiliser le mot-clé "raise" en Python [dupliquer]
cette question a déjà une réponse ici:
- lever manuellement (lancer) une exception en Python 5 réponses
j'ai lu la définition officielle de" Augmenter", mais je ne comprends toujours pas ce qu'elle fait.
en termes simples, qu'est-ce que"augmenter"?
Exemple d'utilisation serait utile.
6 réponses
il a 2 buts.
il est utilisé pour soulever vos propres erreurs.
if something: raise Exception('My error!')
la seconde est de relancer l'exception current dans un gestionnaire d'exception, afin qu'elle puisse être manipulée plus loin dans la pile d'appels.
try:
generate_exception()
except SomeException as e:
if not can_handle(e):
raise
handle_exception(e)
il est utilisé pour augmenter les erreurs.
if something:
raise Exception('My error!')
quelques exemples ici
raise
sans aucun argument est une utilisation spéciale de la syntaxe python. Ça veut dire obtenir l'exception et la relancer. Si cet usage avait pu être appelé reraise
.
raise
À Partir De La Référence Au Langage Python :
S'il n'y a pas d'expressions présentes, soulever de nouveau la dernière exception que était actif dans le champ d'application actuel.
Si raise
est utilisé seul, sans argument est strictement utilisée pour relancer -ing. Si fait dans la situation qui n'est pas à un reraise d'une autre exception, l'erreur suivante est montrée:
RuntimeError: No active exception to reraise
vous pouvez l'utiliser pour soulever des erreurs dans le cadre de la vérification des erreurs:
if (a < b):
raise ValueError()
ou traiter certaines erreurs, puis les transmettre dans le cadre du traitement des erreurs:
try:
f = open('file.txt', 'r')
except IOError:
# do some processing here
# and then pass the error on
raise
raise
cause une exception à la règle. D'autres langues utilisent le verbe "lancer" à la place.
Il est destiné à signaler une situation d'erreur; il signale que la situation est exceptionnelle à la circulation normale.
Les exceptions en relief peuvent être récupérées par le code" upstream "(un bloc environnant, ou une fonction plus tôt sur la pile) pour le gérer, en utilisant une combinaison try
, except
.
en plus de raise Exception("message")
et raise
Python 3 introduit une nouvelle forme, raise Exception("message") from e
. Il est appelé exception chaining, il vous permet de préserver l'exception originale (la cause racine) avec son traceback.
c'est très similaire aux exceptions internes de C#.
plus d'information: https://www.python.org/dev/peps/pep-3134 /