Avatar billede william_munny Nybegynder
19. april 2006 - 09:48 Der er 10 kommentarer og
1 løsning

Udskriv exception til JTextArea

Hej Eksperter,
Hvordan skriver man hele Exception stacktracet ud til f.eks et JTextArea?
Avatar billede kalp Novice
19. april 2006 - 09:53 #1
jTextArea.setText(exeception.printStackTrace())

virker det ikke? du skal selvfølgelig ændre på navne osv... kan ikke huske om printstacktrace er void.. er den det virker det selvfølgelig ikke
Avatar billede mikkelbm Nybegynder
19. april 2006 - 09:53 #2
printStackTrace er en void metode!
Avatar billede mikkelbm Nybegynder
19. april 2006 - 09:55 #3
StackTraceElement[] elements = exception.getStackTrace();

for (StackTraceElement elem : elements)
  textArea.append (elem.toString() + "\n");
Avatar billede mikkelbm Nybegynder
19. april 2006 - 09:55 #4
Eller måske bare:

textArea.setText (exception.toString());
Avatar billede kalp Novice
19. april 2006 - 09:56 #5
mikkelbm >> Det var også hvad jeg havde på fornemmelsen:)
Avatar billede william_munny Nybegynder
19. april 2006 - 10:08 #7
Dette

String detail ="";
StackTraceElement[] elements = null;
elements = throwable.getStackTrace();


    for(int i = 0; i< elements.length;i++)
    {
        detail = detail + "\n" + elements[i].toString();
    }
   
System.out.println(detail);

giver ikke det samme resultat som dette

throwable.printStackTrace();

btw køre det på 1.4 ikke 1.5
Avatar billede arne_v Ekspert
20. april 2006 - 02:09 #8
package april;

import java.io.*;

public class StackTrace {
    public static void main(String[] args) {
        try {
            throw new Exception("Test1");
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            throw new Exception("Test2");
        } catch (Exception e) {
            System.err.println(e.getClass().getName() + ": " + e.getMessage());
            StackTraceElement[] elm = e.getStackTrace();
            for(int i = 0; i < elm.length; i++)                {
                System.err.println("        at " + elm[i]);
            }
        }
        try {
            throw new Exception("Test3");
        } catch (Exception e) {
            StringWriter sw = new StringWriter();
            e.printStackTrace(new PrintWriter(sw));
            System.err.println(sw.getBuffer().toString());
        }
    }
}
Avatar billede william_munny Nybegynder
21. april 2006 - 09:32 #9
Dette virker:

StringWriter sw = new StringWriter();
throwable.printStackTrace(new PrintWriter(sw));           
detail = sw.getBuffer().toString();

Smid et svar Arne_v og tak
Avatar billede arne_v Ekspert
22. april 2006 - 05:33 #10
OK

men som Test2 antyder bør man også med lidt arbejde kunne få få den
rigtige test med .getStackTrace()
Avatar billede william_munny Nybegynder
22. april 2006 - 10:51 #11
Ja det er da ikke for at snyde nogen men din løsning var den hurtigste at bruge.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester