Sobes.tech
Junior
187

Πώς ρίχνουμε σωστά εξαιρέσεις στη Java;

Απάντηση από AI

sobes.tech AI

İstisnalar, programın normal akışını bozan ve derhal işleme alınması gereken beklenmedik durumlar meydana geldiğinde atılmalıdır.

Temel ilkeler:

  • Hataları bildirmek için istisnaları kullanın, akış kontrolü için değil.
  • Standart kütüphaneden en uygun istisna türünü seçin.
  • Standartlar yeterli bilgi sağlamıyorsa, kendi istisna sınıflarınızı oluşturun.
  • Hata nedenine ilişkin detaylı bilgileri, bağlam dahil olmak üzere, istisna mesajına ekleyin.
  • Doğru şekilde işleyemeyeceğiniz istisnaları yakalamayın. Bunları çağrı yığını üzerinde yukarıya iletmek daha iyidir.
  • Kaynakları otomatik olarak kapatmak için try-with-resources bloklarını kullanın.
  • İşlediğiniz veya yukarıya ilettiğiniz istisnaları kaydedin.

Doğru sözdizimi: throw new MyException("Hata mesajı");

Örnek:

// Kendi istisna sınıfınızı oluşturun
public class InvalidParameterException extends Exception {
    public InvalidParameterException(String message) {
        super(message);
    }
}

// İstisna atan bir metod
public int divide(int a, int b) throws InvalidParameterException {
    if (b == 0) {
        throw new InvalidParameterException("Sıfıra bölme kabul edilmez");
    }
    return a / b;
}

// Metodu kullanma ve istisnayı yakalama
public void performDivision(int x, int y) {
    try {
        int result = divide(x, y);
        System.out.println("Sonuç: " + result);
    } catch (InvalidParameterException e) {
        // Hata kaydı
        System.err.println("Bölme hatası: " + e.getMessage());
        // Ek işlem veya iletme
    }
}

Checked ve Unchecked istisnalar arasındaki fark:

Turi Miras İşlem/deklarasyon gerektirir Örnek
Checked Exception (except RuntimeException) Evet (try-catch veya throws) IOException, SQLException
Unchecked RuntimeException Hayır (derleyici zorunlu değil) NullPointerException, ArrayIndexOutOfBoundsException