
Cetak Pelacakan Tumpukan ke Solusi String
Di Jawa, Dapat dibuang kelas dan subkelasnya, seperti Pengecualian dan error, berikan metode yang disebut cetakStackTrace(), yang digunakan untuk menampilkan jejak tumpukan pengecualian saat terjadi. Secara default, metode ini mencetak jejak tumpukan ke keluaran kesalahan standar (System.err) yang biasanya berupa konsol. Namun, untuk membuatnya lebih fleksibel dan mudah diakses, kami akan mengonversi keluaran pelacakan tumpukan cetak menjadi string.
Untuk mencapai ini, kami akan menggunakan Penulis String dan Penulis Cetak kelas yang disediakan oleh perpustakaan standar Java. Kelas StringWriter adalah aliran karakter yang mengumpulkan keluarannya dalam buffer string, yang nantinya dapat digunakan untuk membuat string. Kelas PrintWriter, di sisi lain, mencetak representasi objek yang diformat ke aliran keluaran teks.
public static String stackTraceToString(Throwable exception) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
exception.printStackTrace(pw);
return sw.toString();
}
Penjelasan Kode Langkah-demi-Langkah
Mari kita lihat lebih dekat cara kerja metode sederhana namun bermanfaat ini:
- Kami mendefinisikan metode yang disebut tumpukanTraceToString() yang menerima Dapat dibuang objek sebagai argumen. Objek ini mewakili pengecualian atau kesalahan yang jejak tumpukannya ingin kita ubah menjadi string.
- Kami membuat yang baru Penulis String objek disebut sw, yang akan mengumpulkan output (stack trace) dalam buffer string.
- Kami membuat yang baru Penulis Cetak objek disebut pw yang akan digunakan untuk mencetak jejak tumpukan pengecualian yang diberikan. PrintWriter mengambil StringWriter yang dibuat sebelumnya sebagai parameternya, yang berarti ia akan menulis output dari stack trace ke StringWriter.
- Kami memanggil cetakStackTrace() pada objek Throwable (pengecualian yang kami lewati) dengan PrintWriter sebagai argumennya. Ini akan mencetak jejak tumpukan ke StringWriter alih-alih keluaran kesalahan standar.
- Terakhir, kami mengembalikan konten buffer StringWriter sebagai string dengan memanggil toString () metode pada objek StringWriter.
Dengan menggunakan metode ini, Anda dapat dengan mudah mengonversi pelacakan tumpukan apa pun menjadi string, memungkinkan Anda untuk mencatat, menampilkan, atau menganalisis data kesalahan sesuai kebutuhan.
Kelas Perpustakaan Standar Java Terlibat
Solusi yang dijelaskan dalam artikel ini melibatkan beberapa kelas dari pustaka standar Java yang penting untuk menangani konversi pelacakan tumpukan menjadi string. Berikut adalah gambaran singkat tentang peran mereka:
- Dapat dilempar: Ini adalah superclass dari semua kesalahan dan pengecualian dalam bahasa pemrograman Java. Instance dari kelas ini (atau subkelasnya) merepresentasikan terjadinya masalah atau kondisi luar biasa, dan berisi snapshot dari pelacakan tumpukan, yang dapat diakses melalui metode printStackTrace().
- Penulis String: Ini adalah aliran berbasis karakter yang mengumpulkan keluarannya dalam buffer string internal. Kelas StringWriter adalah bagian dari java.io paket dan berguna saat Anda ingin menulis data karakter ke string.
- Penulis Cetak: Kelas ini mencetak representasi objek yang diformat ke aliran keluaran teks, seperti StringWriter, FileOutputStream, atau aliran karakter lainnya. Ini menyediakan berbagai metode untuk menulis berbagai tipe data, termasuk mencetak jejak tumpukan dari objek Throwable.
Kesimpulannya, mengonversi jejak tumpukan cetak menjadi string di Java dapat dengan mudah dicapai dengan menggunakan kelas StringWriter dan PrintWriter dari pustaka standar Java. Pendekatan ini memungkinkan pengembang untuk mengakses, menangani, dan menganalisis informasi kesalahan dengan lebih baik dalam aplikasi mereka.