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 :

Affichage complet d'une exception


Sujet :

Langage Java

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut Affichage complet d'une exception
    Bonjour,

    j'ai quelques exceptions en travaillant avec un framework complexe. Il est tellement complexe qu'il encapsule des exceptions et utilise un chemin énorme.

    Pour des raisons du framework, je ne peux attraper moi-même certaines exceptions. Je suis donc condamné à regarder ce qui se passe dans ma console.

    Bref, vu la complexité du framework, j'obtiens des erreurs monstrueuses (2 exceptions "nestées" et une ellipse des premières exceptions levées).

    En gros, voici un exemple de stacktrace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    javax.faces.FacesException: org.apache.jasper.JasperException
    	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:425)
    	at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
    	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
    	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
    	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
    	at org.mortbay.jetty.servlet.jsr77.Jsr77Filter.doFilter(Jsr77Filter.java:77)
    	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
    	at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
    	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
    	at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
    	at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
    	at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
    	at org.mortbay.http.HttpServer.service(HttpServer.java:909)
    	at org.jboss.jetty.Jetty.service(Jetty.java:456)
    	at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
    	at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982)
    	at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
    	at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
    	at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
    	at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
    Caused by: org.apache.jasper.JasperException
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
    	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
    	at org.mortbay.jetty.servlet.jsr77.Jsr77Filter.doFilter(Jsr77Filter.java:77)
    	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
    	at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
    	at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:286)
    	at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:171)
    	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415)
    	... 20 more
    Par rapport à cet exemple, je souhaite voir l'entièreté du rapport d'erreur, à savoir, forcer java à me donner les ... 20 more. Y'a-t-il une option me permettant de le faire ? Ce doit être une option modifiable au runtime, puisque je n'ai pas de "ligne de commande".

    D'avance merci

  2. #2
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Je suppose que tu fais un printStackTrace() sur ton exception.
    Essaie un peu ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    try
    {
      //ton code
    }catch(Exception exp)
    {
      StackTraceElement[] ste=exp.getStackTrace();
      for(StackTraceElement e:ste)
      {
         System.out.println(e.toString());
      }
    }
    A priori ca devrait t'afficher tout le stack trace

    Fred
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Excuse-moi de te reprendre ...

    Citation Envoyé par moi-même
    Pour des raisons du framework, je ne peux attraper moi-même certaines exceptions. Je suis donc condamné à regarder ce qui se passe dans ma console.

  4. #4
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    A zut pardon j'ai mal lu (je fatigue un peu à vrai dire).
    Tout dépend de ton framework, mais si il utilise printStackTrace(), il est défini avec un "shorthand" qui inclut les "...".

    Voire la javadoc pour plus de renseignements : http://javasearch.developpez.com/j2s...ntStackTrace()

    Fred
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  5. #5
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    Citation Envoyé par dingoth
    Excuse-moi de te reprendre ...
    pas forcément: Thread.setDefaultUncaughtExceptionHandler(....)
    et tu récupère ton taf si par hasard le stackTrace est provoqué par une exception orpheline (c'est malheureusement souvent le cas: par ailleurs les auteurs de codes qui utilisent "printStackTrace" devraient être taxés d'un bière
    à chaque fois que c'est exécuté!!! -rappel: dans le tout premier bouquin écrit sur Java il était dit "méthode de debug, à ne pas laisser trainer dans du code professionnel" .... clamantis in deserto
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

  6. #6
    Membre confirmé Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Points : 510
    Points
    510
    Par défaut
    À ce que je comprends des choses, je ne peux pas répondre à ta question, mais te faire remarquer que le bas du xx more se reprend au haut de la précédente liste de stack ; c'est parce que les exceptions sont nestées - si vous me pardonnez de parler en franglais - donc il est inutile de répeter la même portion de stack à chaque fois.

    Je reprends. Soit un niveau qui lance une exception ; l'exception va remonter les appels, jusqu'à une sorte de throw new MaPetiteNouvelleException(monAncienneException) ; il va alors y avoir un nouveau stack, pour MaPetiteNouvelleException, qui sera le même, au try / catch prés, que l'ancienne, à partir du niveau de relancement. Donc inutile de remontrer deux fois la même chose.

    Heu... est-ce que ce que je dis est clair ?? (et juste ? )

Discussions similaires

  1. [OpenOffice][Tableur] Affichage complet du contenu d'une cellule
    Par Mariquiqui dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 24/08/2010, 18h37
  2. Réponses: 2
    Dernier message: 02/09/2009, 19h14
  3. Affichage de la pile d'appel lors d'une exception
    Par damien.yep dans le forum Langage
    Réponses: 1
    Dernier message: 14/09/2005, 16h42
  4. [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
  5. Réponses: 3
    Dernier message: 01/11/2002, 14h30

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