JAVA NullPointerException Hata Sebepleri

İdil Kubat Bakır
Akbank Teknoloji
Published in
3 min readSep 20, 2023

Her yazılım geliştiricisinin mesleğinin başlarında muhtemelen kabusu olduğu ilk hatalardan biri NullPointerException hatasıdır. Bu yazımda ne kadar iyi bir yazılım geliştiricisi olsanız bile gözden kaçıp can sıkan bu hata için benim de projelerde sıklıkla karşılaştığım ve çözümü için kullandığım birkaç yöntemden bahsedeceğim. Projelerde sıklıkla karşılaşılan bir hata olan NullPointerException hatası uygulamalarda null olan bir değer üzerinden işlem yapmaya çalıştığımızda karşımıza çıkar. Null olan bir objeye erişmek istediğimizde ya da onun üzerinde değişiklik yapma ihtimallerine karşı null check yapmak belki de production’da alacağımız hatanın önüne geçecek en önemli kurtarıcı çözümlerden biridir. Projemizde kullanmak istediğimiz değişkenimizde ya da kullandığımız method sonucunda veri kaynaklı veya farklı sebeplerden ötürü null gelme ihtimali olabiliyor. Bu ihtimale karşı geliştirdiğimiz kodumuzu null değere duyarlı hale getirmemiz gerekir.

Şimdi size sıkça benimde karşılaştığım ve NullPointerException hatasını almamıza sebep olan birkaç kullanımdan ve çözümlerinden bahsedeceğim.

· Equals() methodunun kullanımı:

String bir değerin istediğimiz bir değer ile eşitliğini kontrol etmek istediğimizde projelerimizde equals method’u kullanabiliyoruz, fakat doğru kullanmazsak eğer equals method’unu çağıran nesnenin null olması durumunda NullPointerException hatası alacağız. Bu hatayı değerimiz null olsa bile almamak için aşağıdaki yöntem kullanılabilir:

· toString() methodunun kullanımı:

Bir diğer sıklıkla kullanıp NullPointerException hatası almamıza sebep olabilecek kullanım ise toString() method’unun null bir değer ile çağrılmasıdır. Eğer string’e çevirmek isteyeceğimiz değer null ise toString() kullanımında NullPointerException hatası almamıza sebebiyet verecektir. Bunun için String.valueOf() kullanımı bizim için daha güvenli bir yöntemdir.

SONUÇ:

· Instanceof Operatörü kullanımı:

Instanceof operatörünü kullandığımızda null değerine sahip herhangi bir değişkenle uygularsak NullPointerException hatası almaz, false değer döndürür.

· Ternary Operator (Koşul Operatörü) kullanımı:

If kullanarak kontrol etmek istediğimiz koşullarda NullPointerException hatasının önüne geçmek için kullanılacak bir yöntem de ternary (Koşul) operatörünün kullanılmasıdır.

(Koşul ? Doğruysa : Yanlışsa)

Yukarıda bahsettiğim örnekler gibi birçok sebepten NullPointerException hatası alabiliriz. Bu kullanımların dışında null değer veya farklı hata kontrollerimiz için unit testler proje için son derece önemlidir. Null kontrollerimiz gibi her senaryoya uygun test case’leri yazıp olası hataların önüne geçebiliriz.

Bir sonraki yazımızda görüşmek üzere…

--

--