Hata Yönetimi (Exception Handling): Try, Catch, Finally ve Throw

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16
Exception Handling: Hatalara Karşı Kalkan Oluşturma



1. Java Exception Hiyerarşisi​


Java'da tüm hata ve istisnalar Throwable sınıfından türetilir. Temelde iki ana gruba ayrılırlar:

Error: Sistemsel ve genellikle programcının müdahale edemeyeceği ağır sorunlardır (Örn: Bellek bitmesi - OutOfMemoryError).

Exception: Programcının yakalayıp düzeltebileceği durumlardır.

Checked Exceptions: Derleme zamanında kontrol edilir. Java, bu hataları try-catch içine almanı veya throws ile belirtmeni zorunlu kılar.

Unchecked (Runtime) Exceptions: Çalışma anında oluşur. Genellikle mantık hatalarıdır (Örn: NullPointerException).

2. Try-Catch Bloğu: Yakala ve Yönet​


Hata oluşma ihtimali olan kodları try bloğuna yazarız. Eğer bir hata oluşursa, program durmaz; bunun yerine hatayı uygun catch bloğuna paslar.

Java:
try {
int[] sayilar = {1, 2, 3};
System.out.println(sayilar[5]); // ArrayIndexOutOfBoundsException fırlatır
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Hata: Olmayan bir indekse erişmeye çalıştınız!");
}

3. Finally: Her Koşulda Çalışan Kod​


finally bloğu, hata oluşsa da oluşmasa da mutlaka çalışır. Genellikle dosya kapatma veya veritabanı bağlantısını kesme gibi "temizlik" işlemleri için kullanılır.

Java:
try {
// Veritabanı işlemleri
} catch (SQLException e) {
System.out.println("Veritabanı hatası!");
} finally {
System.out.println("Bağlantı her durumda kapatılıyor...");
}

4. Throw ve Throws: Hata Fırlatma​


throw: Belirli bir şart gerçekleştiğinde bilerek ve isteyerek bir hata fırlatmak için kullanılır.

throws: Bir metodun imzasında kullanılır. "Bu metot şu hataları fırlatabilir, çağıran kişi buna hazırlıklı olsun" mesajı verir.

Java:
public void bakiyeCek(double miktar) throws InsufficientFundsException {
if (miktar > bakiye) {
throw new InsufficientFundsException("Yetersiz bakiye!");
}
}

Hata Yönetiminde Best Practices​


Doğru YaklaşımHatalı Yaklaşım
Sadece riskli satırları try içine almak.Tüm kodu dev bir try bloğuna yazmak.
Spesifik hataları yakalamak (IOException).Her şeyi genel Exception sınıfıyla yakalamak.
Hatayı loglamak veya kullanıcıya bilgi vermek.catch bloğunu boş bırakmak (Hatayı yutmak).



Sonuç

Hata yönetimi, uygulamanızın profesyonelliğini belirler. Kullanıcıya karmaşık sistem hataları yerine "Dosya bulunamadı, lütfen yolu kontrol edin" gibi anlamlı mesajlar vermek, kullanıcı deneyimini zirveye taşır.
 
Geri
Üst