Obtenir l numéro de ligne apres un crash en csharp

dbigeard
Messages postés
9
Date d'inscription
dimanche 12 décembre 2004
Statut
Membre
Dernière intervention
15 juillet 2013
- 15 juil. 2013 à 15:55
Whismeril
Messages postés
17664
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 août 2022
- 9 août 2013 à 18:44
Bonjour,
j'ai écrit une DLL qui s'exécute coté serveur en mode WEB
Cette DLL est automatiquement lancée par un progiciel en mode "mémoire" et ne prend donc pas en compte le fichier PDB qui lui est accolé
J'ai une erreur dont je connais la méthode mais pas le numéro de ligne
Comment puis-je récupérer le numéro de ligne en erreur ?

Toute ma reconnaissance éternelle à celle ou celui qui me trouve une astuce!
merci d'avance

1 réponse

Whismeril
Messages postés
17664
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 août 2022
612
9 août 2013 à 00:19
Bonsoir,

dans la clause catch, l'exeption a une propriété StackTrace qui te donne le nom de la méthode, le chemin du fichier source et le numéro de ligne

            try
            {
                string[] tableau = { "0", "1", "2" };
                string valeur = tableau[3];
            }
            catch (Exception ex)
            {

                string toto = ex.StackTrace;
            }
1
malheureusement non. cela ne marche que si un fichier pdb est présent. sinon, il n'y a pas le numéro de ligne. c'est là le problème et le but de ma question. mais merci quand même.
0
Whismeril
Messages postés
17664
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 août 2022
612
9 août 2013 à 18:40
Ha ouais, désolé.

J'ai une solution de bourin, c'est d'incrémenter un int à chaque ligne....
0
Whismeril
Messages postés
17664
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 août 2022
612
9 août 2013 à 18:44
            int i = 1;
            try
            {
                
                string[] tableau = { "0", "1", "2" }; i++;
                string valeur = tableau[3]; i++;
                valeur  = tableau[2]; i++;
            }
            catch (Exception ex)
            {

                string toto = ex.StackTrace;
                MessageBox.Show(toto + ", i: " + i);
                MessageBox.Show(ex.ToString() + ", i: " + i);
            }
0