Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exception handling "how and why it's come"

Exception handling

    13 septembre 2019 à 20:40:19

    bonjour tout le monde

    je suis débutant dans le C# et je souhaite developper une application pour la collecte des données d'un commerciale

    j'ai tombé sur un probleme d'exception en fait il n y a pas d'erreur dans le code mais durant le debug le programme ne fonctionne pas et affiche cette message "Exception non gérée"  et j'ai trouvrais aucune solution voici le code ou il y a le probleme si qlq1 peut m'aider a resoidre cette problematique merci

    une note c'est que le projet est connecter avec une base de données Ms SQL Server ou il faut stocker les données.

    https://github.com/hanzazali/C-Code/blob/master/Work%20Stuff.rar

    j'ai besoin d'un petit aide pour continue merci beaucoup de le consulter et de pouvoir m'aider.

    NextrieSH a écrit:

    Bonjour, je doute fortement que tu trouve te l'aide en disant juste qu'il y'a une erreur sans preciser ou, sans citer l'erreur et sans bout de code.

    Personne ne telechargera un .rar pour faire l'enquete sois meme.

    Je t'invite a editer ton post, bonne journee



    -
    Edité par alihanzaz1 14 septembre 2019 à 20:16:31

    • Partager sur Facebook
    • Partager sur Twitter
      14 septembre 2019 à 9:49:17

      Bonjour, je doute fortement que tu trouve te l'aide en disant juste qu'il y'a une erreur sans preciser ou, sans citer l'erreur et sans bout de code.

      Personne ne telechargera un .rar pour faire l'enquete sois meme.

      Je t'invite a editer ton post, bonne journee

      • Partager sur Facebook
      • Partager sur Twitter
        14 septembre 2019 à 20:17:15

        merci beaucoup c'est fait mais j'arrive pas a inserer une image
        • Partager sur Facebook
        • Partager sur Twitter
          15 septembre 2019 à 15:59:06

          Salut,

          De manière générale, le système d'exception fonctionne toujours de la même manière:

          si "un problème" -- qui n'a, a priori, rien à voir avec la logique de ton code, comme, par exemple, une connexion qui "lache" pour une raison quelconque -- survient empêchant ainsi la fonction "en cours" de fournir le résultat attendu, une exception est lancée, et l'exécution de la fonction est purement et simplement abandonnée.

          L'exception va alors "remonter la pile d'appels".  C'est à dire qu'elle va suivre exactement le chemin de toutes les fonctions qui ont été appelées qui ont mené à l'exécution de la fonction qui pose problème (mais dans l'ordre inverse, à  savoir "de la dernière fonction appelée à la première), à la rercherche d'un bloc try ... catch capable de traiter l'exception en question. 

          Et, bien sur, l'exécution de toutes les fonctions qui ne contiennent pas le bloc try ... catch capable de traiter l'exception lancée est elle aussi abandonnée.

          Bien sur, la fonction main ne fait pas exception à ce mode de fonctionnement : si elle ne contient pas un bloc try ... catch capable de traiter l'exception lancée, son exécution est abandonnée, et le programme s'arrête donc "brutalement" en t'envoyant un message du genre de "exception non gérée".

          Autant te l'avouer directement : je n'ai absolument pas regardé ton code (en plus, je suis plus orienté sur le C++ que sur le C# :'(:-°). Mais, vu que tu dis utiliser MySQL, la première idée qui me vient à l'esprit -- et qui risque malgré tout d'être totalement fausse -- est que l'une des fonctions permettant "d'attaquer" la base de  données provoque une exception.

          Les raisons sont multiples, et, tout en étant presque  sur d'en oublier, on peut citer:

          1. le fait que le serveur MySQL n'est pas accessible
          2. le fait que authentification auprès du serveur échoue
          3. le fait qu'une requête (d'insertion, de mise à jour ou simplement de consultation) échoue
          4. Il y a surement encore bien d'autres raisons ;)

           Si j'étais toi, je commencerais donc par me renseigner sur les exceptions lancées par le driver MySQL dans ces différentes situations, et j'entourerais mon code qui fait appel aux fonctionnalités associées d'un bloc try, que je ferais suivre d'un bloc cacth destiné à récupérer les exceptions indiquées.

          Avec un peu de chance, cela mettra en évidence une erreur dans ta manière d'utiliser le pilote MySQL, ce qui pourrait te donner une piste sur la manière de résoudre le problème.

          Avec "un peu moins de chance", le problème n'a rien à voir avec MySQL. Il faudra donc suivre le même principe pour tout ce qui "risque d'échouer" et de lancer une exception ;)

          • Partager sur Facebook
          • Partager sur Twitter
          Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs  à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
            16 septembre 2019 à 10:45:31

            En plus de la réponse de @koala01, très didactique mais générale, voici ma réponse à 2 balles :

            >ne fonctionne pas et affiche cette message "Exception non gérée"

            Ici, c'est le type de message qu'on obtient quand on lance dans le débogueur ou avec un DrWatson (ou approchant) d'activé.

            Dans ces conditions, il est facile d'avoir accès à des informations supplémentaires comme la "Inner Exception" dans le cas où une exception est encapsulée dans une autre et aussi à la stackTrace qui donne des indications sur la pile d'appel au moment du lancement de l'exception.

            Renseignez-vous sur comment obtenir ces informations en fonction de comment vous "tombez" sur ce message d'erreur (Débogueur, Dr Watson, ...).

            • Partager sur Facebook
            • Partager sur Twitter
            Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
              17 septembre 2019 à 21:35:02

              bonjour tout le monde

              merci à tous pour votre aide, j'ai essaiée de profité de tout votre commentaires

              mais j'ai pas encore résoudre le prob, mais j'ai ciblé le 

              c'est dans le fichier config.app la connexion avec la base de données "<connectstrings>

              voici le code je pense que c'est correcte mais je ne sait pas pourquoi il ne marche pas ci qlq1 à une idée

              merci

              <?xml version="1.0" encoding="utf-8" ?>

              <configuration>

                <connectionString>

                  <add name ="connstrng" connectionString ="Server=C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL;Database=BambinosDataBase;Trusted_Connection=True;" providerName ="System.Data.SqlClient"/>

                </connectionString>

                  <startup> 

                      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />

                  </startup>

              </configuration>

              • Partager sur Facebook
              • Partager sur Twitter
                18 septembre 2019 à 1:04:15

                Généralement, un serveur requière une adresse IP (web ou intranet), même lorsque c'est en local (elle peut alors prendre la valeur de 127.0.0.1, qui est l'adresse locale de la machine en cours d'utilisation), et le serveur doit -- bien sur -- être actif sur la machine ;)

                Du moins, c'est de cette manière que j'ai toujours travaillé avec les autres langages, mais, comme je n'utilises vraiment pas souvent C# (et, du coup, que  j'utilise encore moins souvent les bases de données en C#), je peux me tromper sur ce coup là ;)

                • Partager sur Facebook
                • Partager sur Twitter
                Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs  à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
                  19 septembre 2019 à 12:14:57

                  https://www.connectionstrings.com/sql-server/
                  Cela ne correspond à aucun format valide de "connection string" pour un serveur SQL.

                  Il date de quand le toturiel que vous suivez ???

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                    20 septembre 2019 à 11:59:59

                    je pense 2018 et le problème c'était seulement une s au lieu de <connectionString>  il faut <connectionStrings> et il va marcher parfaitement
                    • Partager sur Facebook
                    • Partager sur Twitter
                      20 septembre 2019 à 16:35:37

                      Étrange, généralement, c'est le genre de section du fichier de configuration qu'on ne modifie pas la main mais via le fichier "Settings" du projet.
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

                      Exception handling "how and why it's come"

                      × 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