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

Windows Forms Discussion :

[c#] erreur "La référence d'objet n'est pas définie à une instance d'un objet." mais l'objet existe


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut [c#] erreur "La référence d'objet n'est pas définie à une instance d'un objet." mais l'objet existe
    Bonjour,

    Je suis sur un projet winform avec base de données mysql sur un serveur.
    En production, j'ai souvent l'erreur
    "La référence d'objet n'est pas définie à une instance d'un objet."
    Sauf que les objets existent, enfin il me semble.
    par exemple hier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    try
    {
    // code
    }
    catch (Exception ex)
    {
      throw ex;
    }
    c'est la ligne "throw ex" qui me genere l'erreur.
    Et je ne comprend pas du tout, comment "ex" peut être null.
    De plus ce n'est pas mon code, mais le connecteur mysql .Net .
    "heureusement" cela n'arrive pas tout le temps, mais au moins une fois par jour, chez des clients différents.

    Est-ce que l'un d'ente vous aurez une idée ?

    Merci d'avance.
    Dimitri

  2. #2
    Membre du Club Avatar de Nanos
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 109
    Points : 50
    Points
    50
    Par défaut
    salut,

    Essaie de mettre une MessageBox pour afficher l'erreur . Mais je comprend pas pourquoi tu met throw :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    try
    {
    // code
    }
    catch (Exception ex)
    {
      MessageBox.Show(ex.Message);
    }
    En esperant de t'avoir aidé

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    salut,

    Merci de ta réponse.
    Comme je l'ai dit, ce n'est pas mon code, mon celui du connecteur offciel de mysql pour .Net, donc pour le throw, j'y suis pour rien, on va dire. Mais comme il est dans une DLL, je pense que c'est pour gérer les erreurs à un autre niveau.
    néanmoins, vu que c'est "ex" qui est null, je pense que ex.message va planter de la même façon, non ?

  4. #4
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Hello,

    ton code plante à la ligne "throw ex" parce que tu relances l'exception. ex n'est pas null ; ex EST la NullReferenceException. Donc c'est normal qu'en le lançant, tu aies une erreur, si cette exception n'est pas chopée plus haut dans la pile d'appels.
    ಠ_ಠ

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    OK .....
    merci, j'ai compris, c'est là qu'on s'apperçoit qu'on peut être idiot parfoit ...

    donc cela signifie que l'erreur est dans les lignes qui suivent :
    (je rappelle que ce n'est pas mon code)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (driver.Version.isAtLeast(5, 0, 0))
                        schemaProvider = new ISSchemaProvider(this);
                    else
                        schemaProvider = new SchemaProvider(this);

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    et en réfléchissant, ça ne peut être que version qui est null...
    parce que dans le code juste au dessus, il y a un test sur driver.
    merci, je pense que c'est résolu.

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 141
    Points : 12 242
    Points
    12 242
    Par défaut
    En Debug, l'exception donne les numéros de lignes des méthodes dans la pile d'appel lors du lancement l'exception, c'est la stacktrace.
    Avec la stacktrace, vous obtiendrez la ligne qui pose problème.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    C'est grâce à la stacktrace que j'ai su que l'erreur se trouvait dans ses lignes ...

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/10/2011, 10h31
  2. Réponses: 6
    Dernier message: 31/03/2010, 09h56
  3. Réponses: 0
    Dernier message: 29/12/2009, 09h51
  4. Réponses: 20
    Dernier message: 13/08/2007, 16h11
  5. Réponses: 8
    Dernier message: 04/06/2007, 16h20

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