Java’da IllegalArgumentException
ve NullPointerException
Anlamak
Java’da kod yazarken, istisnalar hata yönetiminin ayrılmaz bir parçasıdır ve uygulamanızın beklenmedik koşullara zarif bir şekilde yanıt vermesini sağlar. Mevcut olan çok sayıda istisna arasında, en çok tartışılanlardan ikisi IllegalArgumentException
ve NullPointerException
dır. Bu blog yazısı, her bir istisnanın ne zaman kullanılacağını, belirli bir senaryoya odaklanarak açıklayacaktır: setter yöntemlerindeki null
parametrelerinin yönetimi.
İkilem: Hangi İstisnayı Seçmeli?
Bir null
değeri atanamayacak olan bir özellik için basit bir setter yöntemine sahip olduğunuzu hayal edin. Bir null
parametre ile karşılaştığınızda bir yol ayırımında kalıyorsunuz. Soru ortaya çıkıyor: IllegalArgumentException
mı yoksa NullPointerException
mı atmalısınız? Her iki istisna da bu bağlamda uygun görünmektedir, ancak evrensel olarak kabul edilen bir cevap yoktur. Bu iki istisnanın işlevlerini inceleyelim ve karar verme sürecinize rehberlik edelim.
IllegalArgumentException
-
Nedir?
IllegalArgumentException
, bir metoda yasadışı veya uygunsuz bir argümanın geçildiğini belirten bir çalışma zamanı istisnasıdır.
-
Ne Zaman Kullanmalı:
- Bir metodun
null
değerini geçerli bir argüman olarak kabul etmediği durumlardaIllegalArgumentException
kullanın. - Örneğin,
null
kabul edilemeyen bir değer olan bir setter metodunda, bu istisnayı atmak, sağlanan argümanın metodun gereksinimlerini karşılamadığını yansıtır.
- Bir metodun
-
Örnek:
public void setName(String name) { if (name == null) { throw new IllegalArgumentException("İsim null olamaz"); } this.name = name; }
NullPointerException
-
Nedir?
NullPointerException
, yine bir çalışma zamanı istisnasıdır ama özel olarak kodunuzunnull
olan bir nesne referansını kullanmaya çalıştığını gösterir.
-
Ne Zaman Kullanmalı:
null
olan bir nesnenin metoduna veya özelliğine erişmeye veya onu değiştirmeye çalışıyorsanızNullPointerException
kullanın.- Bu istisna, giriş parametrelerini doğrulamaktan ziyade, başlatılmamış değişkenlerle uğraşırken kullanılmalıdır.
-
Örnek:
public void printName() { System.out.println(this.name.toUpperCase()); // Eğer isim null ise NullPointerException atabilir }
İstisna Yönetimi İçin En İyi Uygulamalar
Her bir istisna türünü ne zaman atmanız gerektiğini anlamak, net ve bakım yapılabilir kod yazmak için önemlidir. İşte bazı en iyi uygulamalar:
-
Giriş Parametrelerini Doğrulayın: Metod parametrelerinde her zaman
null
değerlerini kontrol edin ve değerler beklenen kısıtlamalara uymuyorsaIllegalArgumentException
atın. -
Anlamlı Mesajlar Kullanın: İstisna yönetiminizde tanımlayıcı mesajlar verin, bu da kodu hata ayıklayan herkesin işini kolaylaştırır. Bu, zaman kazandırabilir ve kullanıcıya bağlam sağlayabilir.
-
Belirlenen Konvansiyonlara Uyun: Çalıştığınız kütüphanelerde ve çerçevelerde kullanılan konvansiyonlarla tanışın; çünkü bu tutarlılık genellikle işbirlikçi çalışmalarda kolaylık sağlayabilir.
Sonuç
IllegalArgumentException
ve NullPointerException
, Java’da null
ile uğraşırken kullanılabilse de, her birini nasıl doğru uygulayacağınızı bilmek daha net bir koda yol açacaktır. null
kabul etmeyen parametreler için IllegalArgumentException
kullanmayı tercih edin. Aksine, başlatılmamış bir nesne referansının yanlışlıkla kullanıldığı senaryolar için NullPointerException
‘ı ayırın.
Bu yönergeleri takip ederek, daha anlaşılır ve bakım yapılabilir Java kodu yazabilirsiniz. Bu bilgiyle donanmış olarak, uygulamalarınızdaki istisna yönetimi konusunda daha bilinçli kararlar alacaksınız.