Partage
  • Partager sur Facebook
  • Partager sur Twitter

Levée d'exception

    2 mars 2019 à 23:36:19

    Bonjour, 

    J'ai un petit problème de compréhension sur les exceptions.

    public static double RacineCarree(double valeur)
    {
        if (valeur <= 0)
            throw new ArgumentOutOfRangeException("valeur", "Le paramètre doit être positif");
        return Math.Sqrt(valeur);
    }
    
    static void Main(string[] args)
    {
        try
        {
            double racine = RacineCarree(-5);
        }
        catch (Exception ex)
        {
            Console.WriteLine("Impossible d'effectuer le calcul : " + ex.Message);
        }
    }

    Je n'ai pas vraiment comment se passe cette levée d'exception puisque selon moi le main effectue le try puis se dirige dans le catch ou il affiche le message grâce à la méthode ex.Message. Je n'ai pas compris l'utilité et le rôle de la levée d'exception "throw new" dans cette portion de code, à quoi sert-il et comment cela se traduit-il au niveau des ordres d’exécution.

    Merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      4 mars 2019 à 9:17:03

      Vous n'entrez dans le bloc du "catch" que si une exception de type "Exception" ( ce qu'il ne faut JAMAIS faire car vous ne pouvez pas correctement gérer une exception aussi générique ) est lancée dans le bloc "try".

      "catch" et "finally", c'est pas la même chose.

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

      Levée d'exception

      × 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