Java.lang.NullPointerException'ı (NPE) fark ettiniz mi? Java'da çalışma zamanı NPE'sinden Kaçınmak için 8 En İyi Uygulama

Yayınlanan: 2020-10-07
Java.lang.NullPointerException'ı (NPE) fark ettiniz mi? Java'da çalışma zamanı NPE'sinden Kaçınmak için 8 En İyi Uygulama

Java'da Null Pointer İstisnasından kaçının ve Java İpuçları ve Java'da NullPointerException'ı önlemek için en iyi uygulamalar.

Bir Java Geliştiricisi olarak, 1. günden itibaren Null Pointer Exception (NPE) ile karşılaşmış olmanız gerektiğine eminim. Çoğu durumda NPE istisnası, pinin aynı sorunun temel nedenini işaret eden net yığın izini gösterir, ancak yüzlerce sınıfınız olan büyük Kurumsal düzeyde Uygulama olması durumunda, gerçek kök nedenini bulmak kabus olur.

Boş İşaretçi İstisnası (NPE) nedir?

NullPointerException (NPE) , bir nesneye başvuruyormuş gibi bellekte hiçbir konuma işaret etmeyen (boş) bir başvuru kullanmaya çalıştığınızda ortaya çıkan bir istisnadır.

Boş bir başvuruda bir yöntemi çağırmak veya null bir başvuru alanına erişmeye çalışmak bir NPE'yi tetikleyecektir. Bu en yaygın nedendir.

JavaDoc'a göre, NPE'nin başlıca nedenleri aşağıdadır:

  • Atılabilir bir Throwable gibi null atmak.
  • null bir nesnenin örnek yöntemini çağırma.
  • null bir nesnenin alanına erişme veya alanı değiştirme.
  • Sanki bir diziymiş gibi null uzunluğunu almak.
  • Sanki bir diziymiş gibi null yuvalarına erişme veya bunları değiştirme.

Şimdi asıl soru, Çalışma Zamanında Java.lang.NullPointerException'dan Nasıl Kaçınılır? Bu eğitimde, çalışma zamanında NPE oluşturan birkaç örneğe ve bunu çözmek için gerçekleştirmemiz gereken adımlara bakacağız.

1. çalışma zamanında NPE oluşturalım. Aşağıdaki örneğe bir göz atın CrunchifyNullPointerExceptionTips.java

NPE 3 farklı şekilde oluşturacağız

  1. Boş Nesneye erişmeye çalışıyorsanız NPE atılacak
  2. Boş Dizeyi dönüştürmeye çalışıyorsanız NPE atılacak
  3. Sınıf başlatma sırasında boş Nesneye erişmeye çalışıyorsanız NPE atılacak

CrunchifyNullPointerExceptionTips.java sınıfını oluşturun

Sonuç:

Çalışma zamanında NullPointerException'ı önlemek için kullanabileceğimiz birkaç ipucu ve püf noktası var. Hadi bir bakalım.

İpucu 1:

Eclipse / IntelliJ IDE, çalışma alanında NPE'yi göstermeye çalışacaktır. Kodunuzu yalnızca geliştirme sırasında düzeltin.

Eclipse'de Boş İşaretçi İpucu

İpucu 2:

Nesne üzerinde bir işlemden önce crunchifyI sNullorEmpty () kontrolünü ekleyin. Bunu CrunchifyNullPointerExceptionTips.java

Yukarıdaki Java program satırı 55 ve 56 bununla değiştirilecektir.

İpucu 3:

trim() işleminden sonra String'in null olup olmadığını kontrol edin.

İpucu 4:

Kesintisiz Runtime Process'i önlemek için her zaman Try Catch block kullanın.

İpucu 5:

Jeneriklerin daha iyi işlenmesi nedeniyle Collections.emptyList() tercih edilir.

İpucu 6:

Java Assertions Kullan

Bir iddia, kodunuzla ilgili varsayımlarınızı test etmenizi sağlayan bir ifadedir. Örneğin, sistemde adı döndüren bir yöntem yazarsanız, String null ise, dönen otherName öğesinin olduğunu iddia edebilirsiniz.

İddiaların temel kullanımı şöyle olacaktır:

Ancak bir sorun var: Assertion üretim ortamında mevcut değil ve Assertion'ı herhangi bir iş mantığıyla kullanmamalıyız.

İpucu 7:

includeKey containsKey() , containsValue() , contains() kontrollerini kullanmayı deneyin.

İpucu 8:

Sonuç olarak, çalışma zamanında üretimde hata ayıklamak yerine geliştirme sırasında NPE ile ilgilenmek her zaman iyi bir uygulamadır. Spring Framework Annotation, Factory Pattern , Null Object Pattern vb. kullanarak kullanılabilecek başka ipuçları ve püf noktaları var. Ama şimdi kısa keseceğim.

Muhtemelen bu konuda bir hafta içinde yeni öğretici yayınlayacak. Bizi izlemeye devam edin.

Bu eğiticiye eklemek istediğiniz VEYA bir sorun buldunuz mu, lütfen araya girin ve yorumlarınızı bildirin.