Print Stack Trace to String Rjeลกenje
U Javi, the Bacljivo klasa i njene podklase, kao npr Izuzetak i Greลกka, navedite metodu pod nazivom printStackTrace(), koji se koristi za prikaz traga steka za izuzetak kada se dogodi. Prema zadanim postavkama, ova metoda ispisuje trag steka na standardni izlaz greลกke (System.err) koji je obiฤno konzola. Meฤutim, da bismo ga uฤinili fleksibilnijim i lako dostupnijim, konvertovaฤemo izlaz traga za ispis u niz.
Da bismo to postigli, koristit ฤemo StringWriter i PrintWriter klase koje obezbeฤuje Java standardna biblioteka. StringWriter klasa je tok znakova koji prikuplja svoj izlaz u string bufferu, koji se kasnije moลพe koristiti za konstruiranje stringa. Klasa PrintWriter, s druge strane, ispisuje formatirane reprezentacije objekata u tok izlaznog teksta.
public static String stackTraceToString(Throwable exception) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); exception.printStackTrace(pw); return sw.toString(); }
Korak po korak objaลกnjenje koda
Pogledajmo pobliลพe kako ova jednostavna, ali korisna metoda funkcionira:
- Definiramo metodu tzv stackTraceToString() koji prihvata a Bacljivo objekat kao argument. Ovaj objekat predstavlja izuzetak ili greลกku ฤiji trag steka ลพelimo da konvertujemo u string.
- Kreiramo novi StringWriter objekt pozvan sw, koji ฤe prikupiti izlaz (trag steka) u string buffer.
- Kreiramo novi PrintWriter objekt pozvan pw koji ฤe se koristiti za ลกtampanje traga steka datog izuzetka. PrintWriter uzima prethodno kreirani StringWriter kao svoj parametar, ลกto znaฤi da ฤe zapisati izlaz traga steka u StringWriter.
- Pozivamo se na printStackTrace() metoda na Throwable objektu (izuzetak koji smo proslijedili) sa PrintWriter kao argumentom. Ovo ฤe ispisati trag steka u StringWriter umjesto standardnog izlaza greลกke.
- Konaฤno, vraฤamo sadrลพaj stringWriter bafera kao string pozivanjem toString () metoda na StringWriter objektu.
Koristeฤi ovu metodu, moลพete lako pretvoriti bilo koji trag steka u niz, ลกto vam omoguฤava da evidentirate, prikaลพete ili analizirate podatke o greลกci po potrebi.
Ukljuฤene klase Java standardne biblioteke
Rjeลกenje opisano u ovom ฤlanku ukljuฤuje nekoliko klasa iz Java standardne biblioteke koje su neophodne za rukovanje konverzijom traga steka u string. Evo kratkog pregleda njihovih uloga:
- Bacanje: To je superklasa svih greลกaka i izuzetaka u programskom jeziku Java. Instance ove klase (ili njene podklase) predstavljaju pojavu problema ili izuzetnog stanja i sadrลพe snimak traga steka, kojem se moลพe pristupiti putem metode printStackTrace().
- StringWriter: To je tok baziran na znakovima koji prikuplja svoj izlaz u internom meฤuspremniku stringova. StringWriter klasa je dio java.io paket i koristan je kada ลพelite upisati znakovne podatke u string.
- PrintWriter: Ova klasa ispisuje formatirane reprezentacije objekata u tekstualni tok, kao ลกto je StringWriter, FileOutputStream ili bilo koji drugi tok znakova. Pruลพa ลกirok raspon metoda za pisanje razliฤitih tipova podataka, ukljuฤujuฤi ispis traga steka objekta Throwable.
U zakljuฤku, pretvaranje traga staka za ลกtampanje u string u Javi moลพe se lako postiฤi koriลกฤenjem klasa StringWriter i PrintWriter iz Java standardne biblioteke. Ovaj pristup omoguฤava programerima da bolje pristupe, rukuju i analiziraju informacije o greลกkama u svojim aplikacijama.