IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#] Difficulté avec les catch


Sujet :

ASP.NET

  1. #1
    Membre régulier Avatar de Roach-
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 108
    Points
    108
    Par défaut [C#] Difficulté avec les catch
    Bonjour à tous,

    J'ai de la difficulté à utiliser les catch, j'ai toujours des erreur à la compilation qui m'empêche d'utiliser les résultat.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    		public string getQuestion()
    		{
    			SqlConnection SqlCnx = new SqlConnection("workstation id=SERVER;packet size=4096;user id=xxx;data source=\"SERVER\\SQLSERVER\";persist security info=False;initial catalog=infosalvage;password=xxx");
    			string SQL = "SELECT SecretQ FROM cust WHERE EmailWork = '"+usrMail.Text+"'";
    			SqlCommand myCommand = new SqlCommand(SQL, SqlCnx);
    			SqlCnx.Open();
    			SqlDataReader SqlData = myCommand.ExecuteReader();
    			SqlData.Read();
    			string db_SecretQ = Convert.ToString(SqlData.GetValue(0));
    			return db_SecretQ.ToString();
                SqlData.Close();
                SqlCnx.Close();
    		}
    Cependant si la personne n'a pas entré sont email cela lève un exception se qui est normal. Quand j'essaie de traiter cette exception avec un try catch de l'exception sql cela me donne un erreur.

    Mon catch est comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    		public string getQuestion()
    		{
                try
                {
                    SqlConnection SqlCnx = new SqlConnection("workstation id=SERVER;packet size=4096;user id=xxx;data source=\"SERVER\\SQLSERVER\";persist security info=False;initial catalog=infosalvage;password=xxx");
                    string SQL = "SELECT SecretQ FROM cust WHERE EmailWork = '" + usrMail.Text + "'";
                    SqlCommand myCommand = new SqlCommand(SQL, SqlCnx);
                    SqlCnx.Open();
                    SqlDataReader SqlData = myCommand.ExecuteReader();
                    SqlData.Read();
                    string db_SecretQ = Convert.ToString(SqlData.GetValue(0));
                    return db_SecretQ.ToString();
                    SqlData.Close();
                    SqlCnx.Close();
                }
                catch (SqlException ex)
                {
                    System.Diagnostics.Trace.WriteLine("[getQuestion] Exception " + ex.Message);
                }
    		}
    J'ai esseyer avec un if pour voir la différence mais cela me donne la même erreur.

    Voici L'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    'members.Login.getQuestion()': not all code paths return a value
    J'ai souvent se genre de problème avec les catch, il doit y avoir quelque chose que je n'ai pas bien comprit.

    Merci pour votre aide.

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 17
    Points : 13
    Points
    13
    Par défaut re
    pour les try catch

    ceci fonctionne de cette manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try{
     ton code
    }catch(typeexception nomvariable){
    }catch(typeexception nomvariable){
    }
    Faut faire de l'exception la plus specifique à la moins specifique.
    Tu peux mettre autant de catch que tu veux.
    Ainsi en dernier on termine par le type exception.

    ddoc

  3. #3
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Si tu rentres dans le Catch, ta fonction ne retourne rien donc ça rale

  4. #4
    Membre régulier Avatar de Roach-
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par lutecefalco
    Si tu rentres dans le Catch, ta fonction ne retourne rien donc ça rale
    Ok donc faudrait que dans le catch je retourne un valeur bidon.

  5. #5
    Membre régulier Avatar de Roach-
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 108
    Points
    108
    Par défaut
    Bon j'ai retourner la valeur vide si un exception est lever, plus loin dans le code j'analyse le contenu de la fonction getQuestion() comme sa si elle est vide il avertie le client d'entrer un email.

    Merci, J,ai comprit le fonctionnement.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Points : 92
    Points
    92
    Par défaut
    Afin de bien gérer tes exceptions, il vaudrait mieux te créer ton propre jeu d'exceptions et faire toi même tes vérifications.
    Remarque : attention, tu fais ton return avant tes close() !!

  7. #7
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par slopera
    Remarque : attention, tu fais ton return avant tes close() !!
    +1

  8. #8
    Membre régulier Avatar de Roach-
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 108
    Points
    108
    Par défaut
    D'accord je vais mettre le return après les close.

    Petite question qu'est ce que cela peut causé.

  9. #9
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par Roach-
    D'accord je vais mettre le return après les close.

    Petite question qu'est ce que cela peut causé.
    La fonction arrete son exécution sur le Return donc tout ce qu'il y a après n'est pas exécuté. Ici, tu fermais pas tes connexions

  10. #10
    Membre régulier Avatar de Roach-
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 108
    Points
    108
    Par défaut
    ahhhhhhh la je sais pourquoi j'ai des petit chose qui ne fonctionne pas correctement.


    Meci à tous vous ête super

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. difficulté avec les listes chainées
    Par sneb5757 dans le forum Débuter
    Réponses: 3
    Dernier message: 30/09/2008, 09h34
  2. Difficulté avec les UDF's de FreeADhocUDFmin
    Par freud dans le forum Firebird
    Réponses: 26
    Dernier message: 05/07/2008, 00h04
  3. difficulté avec les modules .pyd
    Par ulysse07 dans le forum Bibliothèques tierces
    Réponses: 4
    Dernier message: 12/09/2007, 11h17
  4. Difficulté avec les Radio button
    Par toitonline dans le forum Interfaces Graphiques
    Réponses: 8
    Dernier message: 17/04/2007, 17h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo