Apakah ada fitur yang secara otomatis akan menghentikan debugging pada kejadian pengecualian pertama?
Jadi kita
- mulai aplikasi
- lakukan sesuatu yang melempar pengecualian
- IntelliJ muncul garis yang disorot di mana pengecualian terjadi.
debugging
exception
intellij-idea
Mike Chaliy
sumber
sumber
Jawaban:
Jalankan | Lihat Breakpoints | Breakpoint Pengecualian
sumber
Cara cepat untuk memunculkan dialog adalah dengan menekan Ctrl+ SHIFT+ F8(Pada Mac: Cmd+ SHIFT+F8 ), lalu klik ke tab breakpoint pengecualian. Jika itu adalah tab terakhir yang Anda lihat, itu masih akan dipilih, membuatnya mudah untuk menjentikkan pada pengecualian aktif dan nonaktif.
Ini akan menyebabkan IntelliJ memecah pada titik dalam kode (atau kode pustaka) di mana pengecualian muncul. Secara khusus, Anda mendapatkan 'peluang pertama' pada penanganan pengecualian, sebelum tumpukan berjalan mencari tangkapan / akhirnya blok untuk dieksekusi.
TIP: Java cenderung membuang banyak pengecualian secara internal saat memuat kelas, jadi melanggar semua pengecualian ini bisa menjadi sangat membosankan. Berita baiknya adalah Anda dapat mengecualikan beberapa jenis pengecualian menggunakan bidang kondisi .
Sebagai contoh:
Anda dapat menggabungkan beberapa kondisi seperti itu bersama
&&
.sumber
Di IntelliJ IDEA 14, buka:
Run -> View Breakpoints -> Check "Java Exceptions Breakpoints" -> Uncheck "Caught Exceptions"
Jika Anda tidak hapus centang
Caught Exceptions
, eksekusi akan dihentikan setiap kaliJava Framework
ada pengecualian internal.sumber
Ya ada. Anda perlu menentukan breakpoint pengecualian (bisa berupa "Pengecualian") dalam dialog breakpoints di IntelliJ IDEA.
Pengecualian dapat disaring berdasarkan kondisi atau kelas jika diinginkan, atau apakah Anda tertarik dengan pengecualian yang tertangkap atau tidak.
sumber
Jika Anda mengklik tanda "+" kecil di sudut kiri atas, Anda dapat menambahkan breakpoint baru. Jika Anda memilih Exception Breakpoint, Anda mendapatkan sedikit dialog di mana Anda bisa masuk ke kelas pengecualian untuk istirahat (jika Anda tidak ingin istirahat pada semua pengecualian).
sumber
Dalam versi yang lebih baru di intellij di bawah Run > View Breakpoints .
Kemudian periksa Java Exception Breakpoints -> Any Exception .
Cara yang baik untuk men-debug pengecualian adalah dengan menggunakan paket aplikasi utama Anda dan kartu liar
.*
. Dengan cara ini Anda melewatkan semua pengecualian perpustakaan lain, karena sebagian besar waktu Anda mencari pengecualian yang dilemparkan oleh aplikasi Anda dan bukan oleh perpustakaan lain (yang bisa menjadi banyak pengecualian).Sebagai contoh ditunjukkan pada gambar yang saya gunakan
com.gs.mercury.*
untuk istirahat setiap kali aplikasi melempar pengecualian. Jika Anda menggunakan pengecualian untuk apa fungsinya (untuk menangani kasus luar biasa dan tidak menangani aliran situasi normal), Anda hanya akan berhenti ketika Anda mencapai pengecualian yang diinginkan hampir sepanjang waktu.PD Jawabannya ditambahkan hanya untuk menunjukkan filter kelas Catch yang cukup berguna .
sumber