IllegalArgumentException Nedir?
Diyelim ki, bir işlemde pozitif bir sayı bekliyorsunuz ama negatif bir değer gönderiyorsunuz. İşte bu durumda Java, işin başında sizi uyandıran bir alarm olarak bu istisnayı fırlatabilir.
IllegalArgumentException Hatasına Örnek
```java
public class Main {
public static void main(String[] args) {
int number = -5;
System.out.println("The square of " + number + " is " + square(number));
}
public static int square(int num) {
if (num < 0) {
throw new IllegalArgumentException("Number cannot be negative");
}
return num * num;
}
}
```
Bu örnekte, `square` metodu yalnızca pozitif bir sayıyı kabul ediyor. Eğer negatif bir değer gönderilirse, IllegalArgumentException fırlatılır ve "Number cannot be negative" mesajı ile hatayı daha anlamlı kılarsınız.
Neden IllegalArgumentException Kullanmalısınız?
- Hata Kontrolü: Parametrelerin beklenen türde olup olmadığını kontrol edebilirsiniz.
- Geliştirici Dostu: Hata mesajları, doğru parametrelerle nasıl çalışılacağına dair net bir rehber sağlar.
- Kodun Güvenliği: Fonksiyonel hatalar, parametrelerin doğruluğu sağlanarak minimuma indirgenir.
IllegalArgumentException'ı Ne Zaman Kullanmalısınız?
- Kullanıcıdan gelen yanlış veri: Kullanıcıdan alınan inputların geçerliliğini kontrol ederken.
- Veritabanı sorgularında geçersiz parametre: Veritabanı işlemlerinde yanlış türde veya geçersiz bir parametre gönderildiğinde.
- Matematiksel işlemler: Örneğin, sıfırla bölme veya negatif sayılarla işlem yapmak istiyorsanız.
IllegalArgumentException ile İyi Bir Hata Yönetimi
1. Anlamlı Mesajlar Kullanın: Hata mesajları kullanıcılara neyin yanlış gittiğini açıkça belirtmelidir.
2. Hata Yöneticileri Kullanın: Uygulamanızda genel bir hata yönetimi sınıfı oluşturmak, tüm hataları tek bir noktadan yönetmenize yardımcı olabilir.
3. İstisna Zincirleme: Bir hatayı bir üst seviyeye taşırken, olayı anlamlı bir şekilde takip edebilmek için istisna zincirleme kullanabilirsiniz.
IllegalArgumentException ve Diğer Hata Türleri
- NullPointerException: Bir nesne null olduğunda fırlatılır.
- IndexOutOfBoundsException: Bir dizinin veya koleksiyonun geçersiz bir indeksle erişilmeye çalışılması durumunda meydana gelir.
- ArithmeticException: Matematiksel bir hata (örneğin sıfıra bölme) gerçekleştiğinde fırlatılır.