Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur compilation ou plantage

C#

    13 mars 2020 à 22:06:01

    Bonjour,

    je suis un cours sur C#, et j'ai une question :

    Comment savoir si le code ne va pas se compiler ou va se compiler mais provoquer une erreur ? (la différence est floue pour moi).

    Exemple du quiz du cours :

    Que fait le code suivant ?

    double d = 5.2;

    int i = (int)d;

    string s = (string) i;
    Console.WriteLine(s);

    --> Le code ne compile pas parce qu’on ne peut pas caster un int en string

    Quel est le rendu du code suivant ?

    string chaine = "12,25";
    int i = Convert.ToInt32(chaine);
    Console.WriteLine(i);

    --> Le code compile mais plante à l’exécution


    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      25 mars 2020 à 13:52:18

      Un code qui ne compile pas, c'est un code qui est syntaxiquement erroné.

      Un code qui compile est un code qui est syntaxiquement correct, mais pas forcément exempt de bugs ou de fragilités.

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        6 avril 2020 à 20:36:42

        Merci,

        mais je ne vois pas la différence dans les 2 exemples que j'ai donnés. Pourquoi la compilation est OK dans le second ?

        A+

        -
        Edité par DucarneAval 6 avril 2020 à 20:36:56

        • Partager sur Facebook
        • Partager sur Twitter
          6 avril 2020 à 22:05:12

          Salut,

          Le code est syntaxiquement correct puisque tu donnes une string en argument à la fonction ToInt32(). Par contre à l'exécution, elle va échouer à convertir la valeur de la string (12,25) en int, ce qui génère une exception qui n'est pas gérée dans cet exemple.

          • Partager sur Facebook
          • Partager sur Twitter

          Erreur compilation ou plantage

          × 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