Yükleniyor...

Hata İşleme

Hata işleme (Error Handling) JavaScript uygulamalarında beklenmedik durumlarla karşılaşıldığında programın güvenli bir şekilde çalışmaya devam etmesini sağlayan yöntemler bütünüdür. Bir web sitesinde kullanıcı hataları, ağ problemleri veya veri eksiklikleri gibi durumlar sıkça ortaya çıkar ve bunların yönetilmesi uygulamanın güvenilirliğini artırır. Hata işleme, tıpkı bir ev inşa ederken yapının sağlamlığını sağlamak için destek kolonları eklemek, odaları planlamak veya yazdığınız bir mektubu dikkatlice gözden geçirmek gibidir; yani hatalar ortaya çıktığında sistemin kontrolünü kaybetmemek için önlem alırız.
Kişisel bir web sitesinde hatalar, eksik içerik veya bozuk resimler gibi durumlarda kullanıcı deneyimini korur. Bir blogda hatalı yorum girişleri veya yayın hataları önlenir. E-ticaret sitelerinde ödeme süreçleri veya ürün bilgilerindeki hatalar yönetilir. Haber sitelerinde içerik eksikliği kullanıcıyı yanlış yönlendirmez ve platform sorunsuz çalışır. Bu eğitimde try...catch, finally, throw, Promise.catch() ve async/await ile asenkron hata yönetimi konularını öğreneceksiniz. Bu bilgilerle, kodunuzu düzenli ve hatasız çalışır hâle getirerek, bir odayı dekore eder gibi sisteminizi organize edebileceksiniz.

Temel Örnek

javascript
JAVASCRIPT Code
try {
// Attempt to parse JSON
let post = JSON.parse('{"title":"Yeni Yazı"}');
console.log("Başlık:", post.title);
} catch (error) {
// Handle parsing error
console.error("JSON işlenirken hata oluştu:", error.message);
} finally {
// Always executed
console.log("JSON işleme denemesi tamamlandı");
}

Yukarıdaki örnekte try...catch...finally yapısının temel kullanımını görüyoruz.
try bloğu, hata oluşabilecek kodları içerir. Burada JSON.parse() ile bir JSON stringi nesneye dönüştürmeye çalışıyoruz. Eğer JSON geçerliyse post nesnesi oluşturulur ve başlığı yazdırılır. Geçersizse SyntaxError fırlatılır.
catch bloğu yalnızca try içinde hata oluşursa çalışır. error parametresi, name, message ve stack gibi özelliklere sahip bir Error nesnesidir. console.error ile kullanıcıya veya geliştiriciye bilgi veririz.
finally bloğu, hata olsa da olmasa da her zaman çalışır ve temizleme işlemleri için uygundur; örneğin, veri tabanı bağlantılarını kapatmak veya yükleme göstergesini kaldırmak gibi.
Başlangıç seviyesindeki yaygın hatalar arasında try...catch bloklarını atlamak veya catch bloğunu boş bırakmak yer alır. Hata yönetimi, bir mektubu dikkatlice kontrol etmek veya bir odayı planlamak gibi kodun sorunsuz çalışmasını sağlar.

Pratik Örnek

javascript
JAVASCRIPT Code
function getArticle(id) {
try {
if (!id) throw new Error("Makale ID'si gerekli");
// Simulate fetching article
let article = { id: id, title: "Teknoloji Haberleri", content: "Son güncellemeler..." };
return article;
} catch (error) {
console.error("Makale alınırken hata oluştu:", error.message);
// Fallback object
return { id: null, title: "Hata", content: "Makale yüklenemedi" };
} finally {
console.log("Makale yükleme denemesi tamamlandı");
}
}

let article = getArticle(0);
console.log(article);

İleri düzey hata işleme için bazı iyi uygulamalar ve yaygın hatalar:
İyi uygulamalar:

  1. Asenkron kodlarda async/await ile try...catch kullanmak, okunabilirliği artırır.
  2. Kullanıcı ve geliştirici için açıklayıcı hata mesajları vermek.
  3. Try...catch bloklarını yalnızca hata çıkması muhtemel kodlarda kullanmak.
  4. Üretim ortamında hataları loglayarak takip etmek.
    Yaygın hatalar:

  5. Boş catch blokları, hataları gizler ve debug'u zorlaştırır.

  6. Yanlış veya belirsiz mesajlar vermek.
  7. Hatalı event handling nedeniyle bellek sızıntıları oluşması.
  8. Kontrolsüz throw kullanımı, performansı olumsuz etkileyebilir.
    Debug ipuçları: DevTools kullanmak, stack trace incelemek, breakpoints yerleştirmek ve console.error ile log almak. Küçük projelerde basit yönetim yeterli; e-ticaret veya haber sitelerinde ise kapsamlı logging ve fallback mekanizmaları gerekir.

📊 Hızlı Referans

Property/Method Description Example
try...catch Hata yakalama ve yönetim try { ... } catch(e) { ... }
finally Her durumda çalıştırılan blok finally { cleanup(); }
throw Özel hata fırlatma throw new Error("Geçersiz veri");
Error.message Hata mesajı console.log(error.message);
Error.name Hata tipi console.log(error.name);
Promise.catch Asenkron hataları yakalama fetch(url).catch(err => console.error(err))

Hata işleme, JavaScript uygulamalarında kritik öneme sahiptir. try...catch, finally ve throw kullanımı, beklenmedik durumlarda uygulamanın stabil çalışmasını sağlar; tıpkı bir evi planlı şekilde inşa etmek veya bir mektubu dikkatle yazmak gibi.
Bu yetenekler DOM manipülasyonu ve backend iletişimiyle doğrudan ilişkilidir; eksik veriler veya hatalı kullanıcı girişleri sistem hatasına yol açabilir. Sonraki adımlar olarak asenkron hata yönetimi, global error handling (window.onerror) ve logging sistemlerini inceleyebilirsiniz. Farklı projelerde pratik yaparak bu bilgileri pekiştirmek önemlidir.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu konudaki anlayışınızı pratik sorularla test edin.

4
Sorular
🎯
70%
Geçmek İçin
♾️
Süre
🔄
Deneme

📝 Talimatlar

  • Her soruyu dikkatle okuyun
  • Her soru için en iyi cevabı seçin
  • Quiz'i istediğiniz kadar tekrar alabilirsiniz
  • İlerlemeniz üstte gösterilecek