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

Java ME Discussion :

[J2ME] Connaître le nom de la méthode courante


Sujet :

Java ME

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    lr
    lr est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 338
    Par défaut [J2ME] Connaître le nom de la méthode courante
    Salut,

    Comment peut-on faire, à l'exécution, pour connaître le nom de la métode actuellement en cours d'exécution ?

    Sachant qu'il n'y a pas l'api réflexion. Je pourrais déclencher une exception et examiner la stacktrace mais bon

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par lr Voir le message
    Je pourrais déclencher une exception et examiner la stacktrace mais bon
    A ma connaissance c'est la seule solution (même en Java SE)...

    Mais je te déconseille d'utiliser cela massivement car cela peut plomber les perfs (la génération du stacktrace est assez couteuse)

    a++

  3. #3
    Membre expérimenté
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Par défaut
    Citation Envoyé par lr Voir le message
    Salut,

    Comment peut-on faire, à l'exécution, pour connaître le nom de la métode actuellement en cours d'exécution ?

    Sachant qu'il n'y a pas l'api réflexion. Je pourrais déclencher une exception et examiner la stacktrace mais bon

    Merci d'avance
    pourquoi tu veux connaitre le nom de la methode courrante? si tu nous explique ton probleme, peut etre il y a d autres solutions.
    La reflection c'est pratique en general mais en J2me c est un le point le plus faible pour la securite des devices, c est pour ca tu ne peux pas y acceder.

    Cheers,

  4. #4
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    salut,

    bon je déterre peut-être un peu le topic, mais ça pourra toujours servir à d'autres :

    J'utilise moi aussi une petite classe (en J2SE) faite à la main pour logger tout plein de choses.
    La classe stocke chaque log, y compris la classe et le nom de la fonction dans laquelle le log a été généré.

    La méthode utilisée est effectivement l'utilisation d'un Throwable (donc la classe de base pour les exceptions) et ses méthodes associées. Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                Throwable t = new Throwable();
                t.fillInStackTrace();
                StackTraceElement e = t.getStackTrace()[2];
                String className = e.getClassName();
                String functionName = e.getMethodName();
                String lineNumber = e.getLineNumber();
    J'ai un système de gestion du niveau de sévérité de chaque log, ce qui permet de filtrer ceux qu'on veut voir ou pas (exemple: en 'release', on ne va afficher que les erreurs critiques ; en développement, on va tout afficher).

    L'autre fonctionnalité est la possibilité de récupérer des informations lors d'un crash chez l'utilisateur final : si un problème survient, le programme peut proposer à l'utilisateur d'envoyer un rapport à l'auteur (moi en l'occurence) : une bête requête HTML 'POST' avec l'ensemble du log attaché, vers une page PHP de mon crû (un hébergeur gratuit suffit) et qui va stocker l'ensemble du 'log trace' dans une base de données pour que je puisse le consulter après coup.

  5. #5
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour.
    La récupération du StackTrace est trop beau pour être vrai : ça marche pas dans un environnement JavaME : la classe Exception est une version allégé de l'Exception de Java SE.

    J'ai moi-même pas mal cherché à avoir le même résultat pour développer un mini-log4j-like pour déboguer mes applications ME, mais en vain.

    Bonne chance.

Discussions similaires

  1. Nom de la page courante en jsp
    Par kitov dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 07/10/2011, 10h46
  2. [POO] Nom de la méthode courante
    Par stailer dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 03/01/2010, 13h47
  3. Connaître le nom du fichier courant
    Par Olivier Regnier dans le forum Langage
    Réponses: 4
    Dernier message: 30/01/2008, 11h57
  4. Réponses: 3
    Dernier message: 07/05/2004, 10h01
  5. Comment connaître le nom de l'ordinateur ?
    Par M.Dlb dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 30/08/2003, 23h03

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