web-dev-qa-db-fra.com

Comment utiliser le mot clé "raise" dans Python

J'ai lu la définition officielle de "augmenter", mais je ne comprends toujours pas ce que cela signifie.

En termes simples, qu'est-ce que "augmenter"?

Un exemple d'utilisation aiderait.

239
Capurnicus

Il a 2 buts.

yentup a donné le premier.

Il est utilisé pour élever vos propres erreurs.

if something:
    raise Exception('My error!')

La seconde consiste à relancer l'exception actuelle dans un gestionnaire d'exceptions, afin qu'elle puisse être traitée plus loin dans la pile d'appels.

try:
  generate_exception()
except SomeException as e:
  if not can_handle(e):
    raise
  handle_exception(e)
292

Il est utilisé pour relancer des erreurs.

if something:
    raise Exception('My error!')

Quelques exemples ici

39
jackcogdill

raise sans aucun argument est une utilisation particulière de la syntaxe python. Cela signifie obtenir l'exception et la relancer. Si cet usage avait été appelé reraise.

    raise

From Le Python Référence du langage :

Si aucune expression n'est présente, raise relance la dernière exception active dans l'étendue actuelle.

Si raise est utilisé seul sans aucun argument, il est strictement utilisé pour relancer - ing. Si cela est fait dans une situation qui ne déclenche pas une autre exception, l'erreur suivante s'affiche: RuntimeError: No active exception to reraise

32
Sohail Si

Outre raise Exception("message") et raise Python 3 a introduit un nouveau formulaire, raise Exception("message") from e. C'est ce qu'on appelle le chaînage des exceptions, il vous permet de conserver l'exception d'origine (la cause première) avec son suivi.

Cela ressemble beaucoup aux exceptions internes de C #.

Plus d'infos: https://www.python.org/dev/peps/pep-3134/

11
Stan Prokop

raise provoque une exception. D'autres langues utilisent le verbe 'jeter' à la place.

Il est destiné à signaler une situation d'erreur. il signale que la situation est exceptionnelle par rapport au flux normal.

Les exceptions levées peuvent être capturées à nouveau par le code "en amont" (un bloc environnant ou une fonction plus tôt sur la pile) pour le gérer, en utilisant une combinaison try, except.

10
Martijn Pieters

Vous pouvez l'utiliser pour générer des erreurs dans le cadre de la vérification des erreurs:

if (a < b):
    raise ValueError()

Ou gérez certaines erreurs, puis transmettez-les 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
8
sampson-chen