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

Langage Java Discussion :

Numéro de lignes


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Numéro de lignes
    Bonjour,
    j'aimerai savoir comment je pourrais récupérer le numéro de ligne sur laquelle se trouve ma ligne de code comme pour un système de Log par exemple mais sans utiliser les systèmes du genre Log4J etc...

    Je m'explique : j'aimerai par exemple avoir une fonction getNumeroLigne() qui me renverrai le numéro de ligne où est positionné l'appel de la fonction dans ma classe.

    L1- String message = "Mon message : ";
    L2- //Affichage du message
    L3- System.out.println(Message+getNumeroLigne());

    Cela m'afficherait : Mon message : 3

    Merci de m'aider ou de me donner d'autres solutions qui me feraient avancer

    Je viens de trouver une piste pour une éventuelle solution mais je ne sais pas du tout comment la mettre en œuvre :
    http://weblogs.java.net/blog/zarar/a..._sneaky_l.html

    Amicalement,

  2. #2
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu peux récupérer cette info (et d'autres) via le stacktrace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	public static int getNumeroLigne() {
    		StackTraceElement[] stack = new Throwable().getStackTrace();
    		return stack[1].getLineNumber();
    	}
    Attention toutefois :
    • La génération du stack est coûteuse. Il est donc préférable de ne pas trop en abuser...
    • Cette information n'est pas forcément disponible (dans ce cas tu obtiendras -1) selon le type de compilation (l'option -g:none de javac supprime toutes les infos de debug)



    a++

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci, beaucoup de ta réponse, je vais essayer et je vous tiens au courant.

  4. #4
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bon j'ai essayé ça correspond bien à ce que je voulais faire mais c'est vrai que c'est couteux donc je vais l'utiliser modérément

    Merci!

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

Discussions similaires

  1. Rajouter les numéros de ligne dans une colone d'une requete
    Par AntiSAL dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 02/11/2005, 19h07
  2. Afficher le numéro de ligne dans une requete SELECT
    Par tilb dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/09/2004, 10h20
  3. Méthode donnant le numéro de ligne d'un Memo contenant un texte
    Par kilinette dans le forum Composants VCL
    Réponses: 3
    Dernier message: 25/06/2004, 10h16
  4. [DomAST] Numéro de ligne d'un noeud
    Par Satch dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 30/03/2004, 10h15
  5. [JSP] Affichage numéro de ligne d'une exception
    Par PhoneKilleR dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 23/09/2003, 14h59

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