Hata Yönetimi Nedir?
İngilizce: Error Handling
Yayın: · Son güncelleme:
Hata Yönetimi Nedir? Kısaca
Hata yönetimi (error handling), bir programın çalışırken karşılaştığı beklenmedik durumları yakalayıp çökmeden, kontrollü biçimde ele almasını sağlayan yöntemlerin bütünüdür. Try-catch blokları, hata kodları ve loglama bu yöntemlerin parçasıdır.

Hata yönetimi nedir?
Hata yönetimi, bir şeyler ters gittiğinde programın ne yapacağını önceden planlamaktır. İnternet bağlantısı kopabilir, kullanıcı tarih alanına harf yazabilir, ödeme servisi yanıt vermeyebilir. İyi bir program bu durumlarda çökmek yerine anlaşılır bir mesaj gösterir, gerekirse işlemi tekrar dener ve olayı kayda geçirir.
Kullanıcı açısından fark büyüktür. "Beklenmeyen bir hata oluştu" yazan boş bir ekran ile "Kart bilgileriniz onaylanmadı, lütfen kontrol edip tekrar deneyin" mesajı arasındaki fark, hata yönetiminin kalitesidir.
Kullanılan yöntemler
Diller farklı araçlar sunar. Python, Java ve JavaScript'te istisnalar try-catch (Python'da try-except) bloklarıyla yakalanır. Go gibi bazı diller ise fonksiyondan sonuçla birlikte bir hata değeri döndürür ve her çağrıdan sonra bu değerin kontrol edilmesini bekler.
Somut bir senaryo: bir e-ticaret sitesi kargo firmasının servisinden fiyat çekiyor. Servis 5 saniye içinde yanıt vermezse program hatayı yakalar, varsayılan kargo ücretini gösterir ve olayı loglar. Kullanıcı alışverişe devam eder, ekip de sorunu kayıttan fark eder.
İyi hata yönetiminin ilkeleri
Hataları sessizce yutmayın. Boş bir catch bloğu programı çalışır tutar ama sorunu görünmez kılar. Her yakalanan hatayı en azından loglamak, sonradan izini sürmeyi mümkün kılar.
Kullanıcıya gösterilen mesaj ile teknik kayıt ayrı tutulmalıdır. Kullanıcıya veritabanı hatasının ayrıntısını göstermek hem kafa karıştırır hem de saldırganlara sistem hakkında bilgi verir. Kendi kodunuzda dış servislere bağlanan her noktayı listeleyip her biri için "yanıt gelmezse ne olacak?" sorusunu yanıtlayarak başlayın.
Sıkça Sorulan Sorular
Hata yönetimi neden önemli?
Programın beklenmedik durumlarda çökmesini önler, kullanıcıya anlaşılır geri bildirim verir ve geliştiricinin sorunu bulmasını kolaylaştırır. Ayrıca hassas teknik bilgilerin kullanıcıya sızmasını engeller.
Her hatayı yakalamak doğru mu?
Hayır. Yalnız anlamlı biçimde ele alabileceğiniz hataları yakalamak gerekir. Tüm hataları genel bir blokla yutmak, gerçek sorunları gizleyip hata ayıklamayı zorlaştırır.