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.
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.
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.
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).
Hata yönetimi yaparken şu noktalara dikkat etmek kod kalitenizi artırır:
catch(error) parametresi bize sadece bir metin değil, bir nesne döner. Bu nesnenin iki önemli özelliği vardır:
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.
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:
[]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.- 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.