İlk istisna olayında hata ayıklamayı otomatik olarak kesecek bir özellik var mı?
Yani biz
- uygulamayı başlat
- istisna getiren bir şey yap
- IntelliJ istisna meydana vurgulanan satırını attı var.
İlk istisna olayında hata ayıklamayı otomatik olarak kesecek bir özellik var mı?
Yani biz
Yanıtlar:
Çalıştır | Kesme Noktalarını Görüntüle | İstisna Kesme Noktaları
İletişim kutusunu açmanın hızlı bir yolu Ctrl+ SHIFT+ F8(Mac'te: Cmd+ SHIFT+ F8) tuşlarına basmak ve ardından istisna kesme noktaları sekmesine tıklamaktır. Görüntülediğiniz son sekme buysa, yine de seçilecektir, bu da istisnaları açıp kapatmayı kolaylaştırmayı kolaylaştırır.
Bu, IntelliJ'nin kural dışı durumun ortaya çıktığı kodda (veya kitaplık kodunda) kırılmasına neden olur. Özellikle, yığının yürütülmesi için catch / nihayet bloklar aramaya başlamadan önce, istisna işlemede bir 'ilk şans' elde edersiniz.
İPUCU: Java, sınıfları yüklerken dahili olarak çok sayıda istisna atma eğilimindedir, bu nedenle tüm istisnaları kırmak oldukça sıkıcı olabilir. İyi haber şu ki, koşul alanını kullanarak belirli istisna türlerini hariç tutabilirsiniz .
Örneğin:
!(this instanceof java.lang.ClassNotFoundException)
Bu gibi birden fazla koşulu birlikte zincirleyebilirsiniz &&
.
In IntelliJ IDEA 14 gidin:
Run -> View Breakpoints -> Check "Java Exceptions Breakpoints" -> Uncheck "Caught Exceptions"
İşaretini kaldırmazsanız Caught Exceptions
, yürütme her Java Framework
dahili istisna attığında durdurulur .
Evet var. IntelliJ IDEA içindeki kesme noktaları iletişim kutusunda bir istisna kesme noktası tanımlamanız gerekir ("Herhangi bir istisna" olabilir).
İstisnalar, istenirse koşul veya sınıfa göre veya yakalanan veya yakalanmayan istisnalarla ilgilenip ilgilenmediğinize göre filtrelenebilir.
Intellij'in daha yeni sürümlerinde Çalıştır > Kesme Noktalarını Görüntüle altında .
Ardından Java İstisna Kesme Noktaları -> Herhangi Bir İstisna'yı işaretleyin .
İstisnalarda hata ayıklamanın iyi bir yolu, ana uygulama paketinizi ve joker kartı kullanmaktır .*
. Bu şekilde, diğer kütüphanelerin istisnalarını atlarsınız, çünkü çoğu zaman başka bir kütüphane tarafından değil, uygulamanız tarafından atılan istisnaları ararsınız (bu bir çok istisna olabilir).
Resimde gösterilen bir örnek olarak com.gs.mercury.*
, uygulama her istisna attığında kırmak için kullanıyorum . İstedikleri şey için istisnalar kullanırsanız (istisnai durumları ele almak ve normal durumların akışını işlememek için) yalnızca neredeyse her zaman istenen istisnaya ulaştığınızda durursunuz.
PD. cevap oldukça yararlı Catch sınıf filtresini işaret etmek için eklendi .