Saya akan melalui program soket. Di dalamnya, printStackTrace
disebut IOException
objek di blok tangkapan.
Apa printStackTrace()
sebenarnya yang dilakukannya?
catch(IOException ioe)
{
ioe.printStackTrace();
}
Saya tidak menyadari tujuannya. Untuk apa itu digunakan?
e.printStackTrace(); System.exit(1);
Di sini saya ingin mengajukan pertanyaan yang sama dengan OP, tetapi dengan nada yang berbeda: Apa sebenarnya tujuan dari ini? Tidakkah JRE secara otomatis mencetak stacktrace dan keluar, ketika pengecualian dilemparkan? Yaitu, sebenarnya tidak banyak "Penanganan Pengecualian" yang terjadi di sini, bukan ??Jawaban:
Ini adalah metode pada
Exception
instance yang mencetak jejak tumpukan dari instance tersebutSystem.err
.Ini adalah alat yang sangat sederhana, tetapi sangat berguna untuk mendiagnosis pengecualian. Ini memberi tahu Anda apa yang terjadi dan di mana dalam kode ini terjadi.
Berikut adalah contoh bagaimana itu dapat digunakan dalam praktik:
sumber
catch
blok :-)throw new RuntimeException(e)
Saya agak penasaran tentang ini juga, jadi saya hanya mengumpulkan sedikit kode contoh di mana Anda dapat melihat apa yang dilakukannya:
Menelepon
println(e)
:Menelepon
e.printStackTrace()
:sumber
System.err.println(e);
akan lebih sesuai.Ini membantu untuk melacak pengecualian. Misalnya Anda menulis beberapa metode dalam program Anda dan salah satu metode Anda menyebabkan bug. Kemudian printstack akan membantu Anda mengidentifikasi metode mana yang menyebabkan bug. Stack akan membantu seperti ini:
Pertama metode utama Anda akan dipanggil dan dimasukkan ke tumpukan, kemudian metode kedua akan dipanggil dan dimasukkan ke tumpukan dalam urutan LIFO dan jika ada kesalahan terjadi di suatu tempat di dalam metode apa pun, tumpukan ini akan membantu mengidentifikasi metode itu.
sumber
printStackTrace()
membantu pemrogram untuk memahami di mana masalah sebenarnya terjadi.printStacktrace()
adalah metode kelasThrowable
darijava.lang
paket. Ini mencetak beberapa baris di konsol keluaran. Baris pertama terdiri dari beberapa string. Ini berisi nama sub-kelas Throwable & informasi paket. Dari baris kedua dan seterusnya, ini menjelaskan posisi kesalahan / nomor baris yang dimulai denganat
.Baris terakhir selalu menjelaskan tujuan yang dipengaruhi oleh kesalahan / pengecualian. Baris kedua terakhir memberi tahu kita tentang baris berikutnya dalam tumpukan di mana kontrol berjalan setelah mendapatkan transfer dari nomor baris yang dijelaskan di baris terakhir. Kesalahan / pengecualian mewakili keluaran dalam bentuk tumpukan, yang dimasukkan ke dalam tumpukan dengan
fillInStackTrace()
metodeThrowable
kelas, yang dengan sendirinya mengisi detail transfer kontrol program ke dalam tumpukan eksekusi. Garis yang dimulai denganat
, tidak lain adalah nilai dari tumpukan eksekusi. Dengan cara ini pemrogram dapat memahami di bagian mana dalam kode masalah sebenarnya berada.Seiring dengan
printStackTrace()
metodenya, ada baiknya untuk digunakane.getmessage()
.sumber
printStackTrace()
mencetak lokasi di mana pengecualian terjadi dalam kode sumber, sehingga memungkinkan penulis yang menulis program untuk melihat apa yang salah. Tetapi karena ini menunjukkan masalah dalam kode sumber, pengguna yang mungkin atau mungkin tidak memiliki pengalaman pengkodean mungkin tidak dapat memahami apa yang salah, jadi jika program memungkinkan pengguna untuk mengirim pesan kesalahan ke penulis, pengguna mungkin tidak dapat memberikan data yang baik tentang apa yang salah.Anda harus mempertimbangkan
Logger.getLogger()
metode ini, ini menawarkan fasilitas penanganan pengecualian (logging) yang lebih baik, dan selain ituprintStackTrace()
tanpa argumen dianggap usang dan HANYA digunakan untuk tujuan debugging, bukan untuk tampilan pengguna.sumber
The
printStackTrace()
membantu programmer memahami di mana masalah yang sebenarnya terjadi. TheprintStackTrace()
metode adalah anggota dari kelasThrowable
dijava.lang
paket.sumber
printStackTrace
adalah metodeThrowable
kelas. Metode ini menampilkan pesan kesalahan di konsol; di mana kami mendapatkan pengecualian dalam kode sumber. Metode ini dapat digunakan dengan blok tangkapan dan mereka menjelaskan:Tiga metode yang menjelaskan pengecualian pada konsol (di mana printStackTrace adalah salah satunya) adalah:
printStackTrace()
toString()
getMessage()
Contoh:
sumber
printStackTrace () membantu pemrogram untuk memahami di mana masalah sebenarnya terjadi. Ini membantu untuk melacak pengecualian. itu adalah metode printStackTrace () dari kelas Throwable yang diwarisi oleh setiap kelas pengecualian. Metode ini mencetak pesan yang sama dari objek e dan juga nomor baris di mana pengecualian terjadi.
Berikut ini adalah contoh lain tumpukan cetak Exception di Java.
java.lang.Throwable: Ini adalah Pengecualian baru di Java ... di ClassName.methodName (fileName: 5)
sumber
Apa kegunaan metode e.printStackTrace () di Java?
Nah, tujuan menggunakan metode ini
e.printStackTrace();
adalah untuk melihat apa sebenarnya yang salah.Misalnya, kami ingin menangani pengecualian. Mari kita lihat Contoh berikut.
Saya telah menggunakan metode
e.printStackTrace();
untuk menunjukkan dengan tepat apa yang salah.Pada outputnya, kita bisa melihat hasil sebagai berikut.
sumber
printStackTrace()
memberi tahu di baris mana Anda mendapatkan kesalahan, mengapa Anda mendapatkan kesalahan.Contoh:
sumber