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

VB.NET Discussion :

Connaitre le nom de la function en cours


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Par défaut Connaitre le nom de la function en cours
    Bonjour, je voudrais connaitre le nom de la function dans laquelle je suis...
    Je suis dansune classe avec plusieurs public function...et comme Je loggue mes passages dansune console j aimerais connaitre le cheminement..
    Comment donc faire pour connaitre le nom de la function dans laquelle je suis.? J ai regardé l objet me. mais il me retourne tout concernant la classe mais rien sur la function...merci

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 196
    Par défaut
    system.reflection.getcurrentmethod
    si y a pas de .name
    faut faire .gettype. et voir si y a un .name ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Par défaut Ca marche nickel
    Citation Envoyé par sperot51 Voir le message
    system.reflection.getcurrentmethod
    si y a pas de .name
    faut faire .gettype. et voir si y a un .name ...
    System.Reflection.MethodBase.GetCurrentMethod.Name
    Merci

  4. #4
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Y a t'il une solution identique qui puisse renvoyer ce meme nom de la function ou il y a eu une erreur ?
    J'ai crée un form specifique pour les erreurs qui se charge et s'affiche automatiquement lors d'un bug. J'ai essaye d'implanter System.Reflection.MethodBase.GetCurrentMethod.Name pour avoir en plus cette information, mais bien sur, ca me donne le nom de la methode courante donc celle de la form erreur, et pas la d'ou vient l'erreur.
    Y aurait il un moyen de moyenner ?

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 196
    Par défaut
    comment intercepte tu les erreurs ?

    car tu peux peut etre appeler getcurrentmethod dans le catch et l'envoyer en parametre à ta gestion d'erreur

    sinon il y a moyen d'avoir la pile des appels à tout moment, donc de retrouver la sub d'avant (c'est dans system.diagnostics je crois , stack quelque chose)

    dans le pire des cas, à partir d'ex tu peux obtenir beaucoup de chose, dont la méthode du crash, la pile aussi, ex.Stacktrace, la classe, les variables de la classe etc...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Pour cette form d'erreur, j'utilise le on error goto dans un module de gestion.
    Pour les trucs plus specifiques j'utilise le Try Catch.

    Sinon je vais aller regarder du cote de la pile comme tu me dis.

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 196
    Par défaut
    on error est pas trop bien il me semble
    et il y a un addhandler possible sur les erreurs inatrapé (y a eut un post la dessus recemment) qui renvoie ex
    genre addhandler erreurnongeree, addresof sub_gestion_erreur
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Oui j'ai lu plein de choses negatives sur le on error, mais dans mon cas precis, c'est l'ideal pour intercepter toute erreur non 'prevue'.
    J'ai pas encore essaye de la changer en try/catch car ca fonctionne reellement trop bien comme cela

    Sinon, j'ai pas vu ce post sur ce addhandler, tu aurais pas l'url sous la main ?

  9. #9
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 196
    Par défaut
    non mais fait une recherche sur le forum (ou dans reflector, ou dans msdn) sur UnHandledException

    par contre, une question
    que fait on error que try catch ne fait pas ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 181
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 181
    Par défaut
    Bonjour.

    Personnellement c'est comme le dit Sperot51 que je fonctionne.

    Dans les classes de mon appli, je positionne systématiquement un try/catch qui instancie en cas d'erreur une classe de log avec comme paramétre le nom de la classe en erreur et la criticité.

    C'est suivant la criticité que je déclenche ou non l'arrêt de l'application aprés avoir loggé l'erreur et affiché un msg si besoin.

    Ca oblige à mettre des try/catch un peu partout mais je n'ai pas trouvé mieux (un gestion de contexte via un class shared me semble pas beaucoup mieux).

    Cdt.

  11. #11
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Citation Envoyé par olsimare Voir le message
    Bonjour.

    Personnellement c'est comme le dit Sperot51 que je fonctionne.

    Dans les classes de mon appli, je positionne systématiquement un try/catch qui instancie en cas d'erreur une classe de log avec comme paramétre le nom de la classe en erreur et la criticité.

    C'est suivant la criticité que je déclenche ou non l'arrêt de l'application aprés avoir loggé l'erreur et affiché un msg si besoin.

    Ca oblige à mettre des try/catch un peu partout mais je n'ai pas trouvé mieux (un gestion de contexte via un class shared me semble pas beaucoup mieux).

    Cdt.
    Plus qu'à rajouter un rapport de bug automatique avec un retour disant "non corrigé" ou "corrigé dans la version x.x.x", et ça sera magnifique
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  12. #12
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    par contre, une question
    que fait on error que try catch ne fait pas ?
    Il me permet une gestion complete des erreurs.
    Dans mes structures d'appli, je lance le soft avec un sub main dans un module, puis un on error en debut pour intercepter toutes les erreurs qui peuvent suivre tout au long de l'execution.
    Je place des trycatch que sur des trucs spécifiques qui peuvent etre mieux gere.

    L'avance du on error, c'est d'intercepter n'importe ou et n'importe quand.
    Le desavantage, c'est un arret quoi qu'il se passe.

    Conclusion, comme on peut pas mettre des trycatch à chaque ligne de code, c'est un bon compromis pour intercepter toutes les erreurs (previsibles ou non)

  13. #13
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 196
    Par défaut
    si tu veux dire que on error intercepte les erreurs dans les subs appelées par la sub qui contient le on error
    sache que les try catch font pareil ...
    en cas d'une erreur dans une sub sans gestion d'erreur, l'erreur est reportée à l'appelant et sa gestion d'erreur s'il y en a une, etc...

    par contre le addhandler sur unhandledexception permet de catcher les erreurs qui ne sont pas gérées (ni par on error ni par tryu catch)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  14. #14
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Ok pour les subs et sous-subs. (ca je le savais)
    Mais intercepte t-il aussi les erreurs des autres forms, dialogs, dlls, etc ...
    (la j'ai pas essaye de mettre un try catch à la place du on error ... ca peut aussi peut etre le faire - je l'essayerai quand j'aurais 5 minutes et surtout quand je vais y penser (lol))

    Par contre j'ai fais une recherche sur le forum avec ton UnHandledException, mais nada pour retrouver le post que tu me parlais.

  15. #15
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Citation Envoyé par SaumonAgile Voir le message
    Plus qu'à rajouter un rapport de bug automatique avec un retour disant "non corrigé" ou "corrigé dans la version x.x.x", et ça sera magnifique
    C'est une excellente idée de signifier l'etat du bug - merci

    Actuellement, quand ya un bug, je verifie si internet=on, puis j'envoi le rapport directement sur mon serveur.
    Et si ya internet=off, je place le rapport dans le presse-papier pour c/c pour faciliter l'utilisateur.
    Et en affichant bien sur toutes les infos dans ma form speciale erreur.
    Difficile de faire plus

  16. #16
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 196
    Par défaut
    quand j'aurais 2min j'essairais de te rechercher ce truc
    moi j'avais pas réussi à le mettre en place mais ca doit etre bien quand meme lol
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  17. #17
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Ok cool.
    Par contre t'es pas trop encourageant

  18. #18
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 196
    Par défaut
    faut dormir la nuit !
    ^^

    sinon j'ai retrouvé le post :
    http://www.developpez.net/forums/sho...d.php?t=404907

    dans lequel smyley nous indique http://msdn2.microsoft.com/en-us/lib...exception.aspx


    je suis pas sur que c'est ca que j'avais essayé de mettre en place
    moi c'était un truc dans threading peut etre
    enfin le truc devait etre fait avant le demarrage de l'appli
    j'avais tout essayé, meme en placant le code dans le projet, dans run ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  19. #19
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Mais je dors la nuit, la preuve je me leve à 16h du matin

    Thx pour les liens, je vais regarder ca avec interet.

  20. #20
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Citation Envoyé par Danyel Voir le message
    Mais intercepte t-il aussi les erreurs des autres forms, dialogs, dlls, etc ...
    (la j'ai pas essaye de mettre un try catch à la place du on error ... ca peut aussi peut etre le faire - je l'essayerai quand j'aurais 5 minutes)
    Je viens de faire la modification et le changement de on error vers un try catch et resultat ... ... ... Identique en ce qui concerne les autres forms, dialogs, dlls, etc etc etc ... donc nickel.

    Maintenant que j'ai le trycatch en complete solution, je vais voir un peu ce que me renvoi le System.Reflection.MethodBase.GetCurrentMethod.Name maintenant.
    Je vous tiens au jus.

    Edition 5 minutes plus tards
    Comme je le pensais, il me renvoi la sub main (encore logique)
    Je me tourne donc vers l'ultime voie de sperot.
    Suite au prochain episode

    Edition 30 minutes plus tards
    Bon sperot, c'est pas glop car c'est pour gerer les ex non geree, mais dans mon cas, c'est pas le cas.
    Ca me semble difficile de recuperer le nom de la sub avec cette methode.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/06/2010, 13h53
  2. connaitre le nom de la session en cours
    Par kynri dans le forum Windows
    Réponses: 5
    Dernier message: 06/11/2007, 16h38
  3. Réponses: 8
    Dernier message: 23/06/2006, 22h53
  4. Réponses: 2
    Dernier message: 29/10/2003, 11h05
  5. Connaitre le nom des imprimantes
    Par bastien dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/06/2002, 16h36

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