IllegalArgumentException Nedir?
Bazen, geliştiriciler parametrelerin doğru olup olmadığını kontrol etmeyi unuturlar veya beklenmeyen bir değer geçerler. İşte burada IllegalArgumentException'ın görevi başlar: Sistemi uyandırır ve geliştiriciye, yanlış bir şeylerin olduğunu bildirir.
Neden IllegalArgumentException Alırsınız?
- Yanlış veri tipi: Bir metodu çağırdığınızda, metodun beklediği türde bir parametre göndermezseniz bu hata oluşur.
- Geçersiz parametre değeri: Bir metot, belirli bir aralıkta olmasını beklediğiniz bir değer alabilir, ancak siz bu aralığı ihlal eden bir değer gönderirsiniz.
- Null değerler: Birçok metot, null değerleri kabul etmez. Eğer bir parametre null ise ve metot bunu kabul etmiyorsa, yine IllegalArgumentException ile karşılaşırsınız.
Örnek: IllegalArgumentException ile Karşılaşma
Kod örneği:
kopyalapublic class BankaIslemi { public void paraCekme(double tutar) { if (tutar < 0) { throw new IllegalArgumentException("Tutar negatif olamaz!"); } System.out.println("İşlem başarılı: " + tutar + " TL çekildi."); } public static void main(String[] args) { BankaIslemi banka = new BankaIslemi(); banka.paraCekme(-100); // IllegalArgumentException tetiklenir } }
Burada, negatif bir tutar girmeye çalıştığınızda IllegalArgumentException tetikleniyor ve kullanıcıya uygun bir hata mesajı gösteriliyor.
IllegalArgumentException Nasıl Çözülür?
1. Parametrelerinizi Doğru Kontrol Edin: Bir metodu çağırmadan önce, göndereceğiniz parametrelerin doğru türde ve geçerli olup olmadığını kontrol edin. Eğer yanlış bir değer varsa, programın hata vermemesi için uygun bir önlem alın.
2. Exception Handling Kullanın: Eğer IllegalArgumentException gibi hatalarla karşılaşıyorsanız, hata yönetimi için try-catch bloklarını kullanabilirsiniz. Bu, hatayı kontrol etmenizi ve daha kullanıcı dostu bir mesaj vermenizi sağlar.
Örnek:
kopyalapublic class BankaIslemi { public void paraCekme(double tutar) { if (tutar < 0) { throw new IllegalArgumentException("Tutar negatif olamaz!"); } System.out.println("İşlem başarılı: " + tutar + " TL çekildi."); } public static void main(String[] args) { BankaIslemi banka = new BankaIslemi(); try { banka.paraCekme(-100); // IllegalArgumentException yakalanır } catch (IllegalArgumentException e) { System.out.println("Hata: " + e.getMessage()); // Hata mesajı ekrana yazdırılır } } }
Bu sayede, uygulama bir hata vermez ve kullanıcıya daha açıklayıcı bir hata mesajı gösterilir.
Sonuç
Unutmayın, her hata bir öğrenme fırsatıdır. Java dünyasında IllegalArgumentException'ı iyi anlayarak, sağlam ve hatasız kodlar yazabilirsiniz!