Hata Yönetimi: try, catch ve finally ile Hata Kontrolü

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16
Bir programcı olarak en büyük kabusunuz, basit bir hata yüzünden tüm web sayfasının donması veya beyaz ekranda kalmasıdır. Hata yönetimi, bu "beklenmedik" anları kontrol altına almanızı sağlar.

1. try ve catch Blokları​


Bu iki blok et ve tırnak gibidir. try bloğu içine "riskli" kodlarınızı yazarsınız. Eğer o kodda bir hata oluşursa, JavaScript çalışmayı durdurmak yerine doğrudan catch bloğuna atlar.


  • []try: Denenecek olan kod bloğu.
    []catch: Hata oluştuğunda ne yapılacağını belirleyen blok. Hata nesnesine (error) buradan erişilir.

JavaScript:
try {
// Riskli bir işlem (Örneğin tanımlanmamış bir değişkeni kullanmak)
console.log(forumVerisi);
} catch (error) {
// Hata oluşursa burası çalışır
console.error("Bir hata yakalandı: " + error.message);
}

2. throw ile Kendi Hatalarınızı Oluşturun​


Bazen JavaScript teknik olarak bir hata görmez ama iş mantığınız (business logic) için o bir hatadır. Örneğin, bir yaş girişinde kullanıcının eksi değer girmesi teknik bir hata değildir ama mantıksal bir hatadır. Bu durumlarda throw anahtar kelimesini kullanırız.

JavaScript:
function yasKontrol(yas) {
if (yas < 0) {
throw new Error("Yaş değeri sıfırdan küçük olamaz!");
}
return "Yaşınız kabul edildi: " + yas;
}

try {
console.log(yasKontrol(-5));
} catch (e) {
console.log("Hata oluştu: " + e.message);
}

3. finally: Her Şartta Çalışan Blok​


finally bloğu, hata olsa da olmasa da en sonda mutlaka çalışır. Genellikle "temizlik" işlemleri için kullanılır (örneğin bir veritabanı bağlantısını kapatmak veya bir "yükleniyor" ikonunu gizlemek).

JavaScript:
try {
console.log("Veritabanına bağlanılıyor...");
// İşlemler...
} catch (err) {
console.log("Bağlantı hatası!");
} finally {
console.log("İşlem bitti, bağlantı güvenle kapatıldı.");
}

4. Hata Yönetiminde Altın Kurallar​


Hata yönetimi yaparken şu noktalara dikkat etmek kod kalitenizi artırır:


  1. []Sessiz Kalmayın: Boş bir catch bloğu (hiçbir şey yazdırmayan) hatayı gizler. Bu, ileride hatanın kaynağını bulmanızı imkansız hale getirir.
    []Spesifik Olun: Hata mesajlarını kullanıcıya gösterirken "Bir hata oluştu" yerine, "Giriş bilgileri hatalı" gibi yönlendirici mesajlar seçin.
  2. Gereksiz Kullanmayın: Her satırı try-catch içine almayın. Sadece dış dünyaya bağımlı (API istekleri, dosya okuma vb.) veya gerçekten hata riski olan yerlerde kullanın.

Hata Nesnesi (Error Object) Neler İçerir?​


catch(error) parametresi bize sadece bir metin değil, bir nesne döner. Bu nesnenin iki önemli özelliği vardır:

  • []error.name: Hatanın tipi (ReferenceError, SyntaxError, TypeError vb.).
    []error.message: Hatanın ne olduğuna dair açıklama.
  • error.stack: Hatanın hangi dosyada ve kaçıncı satırda oluştuğuna dair detaylı yol haritası.



Sonuç

Hatalar, yazılımın doğal bir parçasıdır. Önemli olan bu hataları öngörmek ve uygulamanızın kontrolsüz bir şekilde kapanmasını engellemektir. try...catch yapısı sayesinde çok daha profesyonel ve dayanıklı web uygulamaları geliştirebilirsiniz.
 
Geri
Üst