Partage
  • Partager sur Facebook
  • Partager sur Twitter

Incompréhension mot-clé : raise

A quoi sert le mot clé Raise

    17 août 2017 à 19:17:15

    Bonjour, :D

    Je suis actuellement en train de suivre le cours de Vincent Le Goss : "Apprenez à Programmer en Python" .
    Dans le premier chapitre, 8° section, il y a une sous-partie dédiée à "Lever une exception".
    Dans cette sous-Partie, on nous propose d'utiliser le mot-clé raise dans un programme que voici :

    annee = input() # L'utilisateur saisit l'année
    try:
        annee = int(annee) # On tente de convertir l'année
        if annee<=0:
            raise ValueError("l'année saisie est négative ou nulle")
    except ValueError:
        print("La valeur saisie est invalide (l'année est peut-être négative).")

    Et quand je rentre une valeur négative, il en ressort : "La valeur saisie est invalide (l'année est peut-être négative)."

    Je n'ai aucune notification que c'est une valeur négative, est ce normal ?

    Merci de votre aide ;)

    Juju ^^

    • Partager sur Facebook
    • Partager sur Twitter
      17 août 2017 à 20:19:44

      Oui c'est normal, car l'objectif de except c'est justement de capturer les erreurs (autrement dit, de ne pas afficher les messages d'erreurs et de ne pas faire planter python). Donc en ligne 5 ton erreur est bien générée, mais la ligne 6 la capture et n'affiche pas le message.

      Si tu veux récupérer les éléments de l'erreur passer sous silence, il faut utiliser un alias pour l'exception et exploiter l'attribut args:

      annee = input("Saisir l'année: ") # L'utilisateur saisit l'année
      try:
          annee = int(annee) # On tente de convertir l'année
          if annee<=0:
              raise ValueError("l'année saisie est négative ou nulle")
      except ValueError as err:
          #print(dir(err))
          #print(err.args)
          print(err.args[0])
          print("La valeur saisie est invalide (l'année est peut-être négative).")
      • Partager sur Facebook
      • Partager sur Twitter
      Précepte: Le mieux est l'ennemi du bien
        20 août 2017 à 16:02:34

        niquel, j'ai compris et ça marche trop bien !!^^

        Merci Beaucoup Olygrim !! :D

        • Partager sur Facebook
        • Partager sur Twitter

        Incompréhension mot-clé : raise

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown