CodeBlanks Logo Icon CodeBlanks

Özet - Hata yönetimi

JavaScript kursu · Orta seviye · Ders 105/134

Özel hata sınıfı ve asenkron hata yönetimi ile bir kullanıcı kayıt akışı yazarsın.

Özet - Hata yönetimi

Bu grupta özel hata sınıfları oluşturmayı, hataları cause ile sarıp tekrar fırlatarak yaymayı, instanceof ile çoklu desen yakalamayı, asenkron hata stratejilerini ve global hata yakalamayı öğrendin.

Şimdi tüm bunları bir kullanıcı kayıt akışında birleştireceksin: özel hata sınıfı fırlatma, asenkron kayıt ve global yakalayıcı kurma.

Uygulama Kayıt akışı

signUp adlı async fonksiyon yaz. email parametresi boşsa throw new ValidationError('E-posta gerekli') fırlatsın. Sonra try bloğunda await registerUser(email) çağrısı yapsın. catch (err) bloğunda console.error(err) çağrısı yapsın.

Örnek çözümü göster
async function signUp(email) {
  if (!email) {
    throw new ValidationError('E-posta gerekli');
  }
  try {
    await registerUser(email);
  } catch (err) {
    console.error(err);
  }
}

Uygulama Global yakalayıcıyı kur

Global hata dinleyicisi yaz. window.addEventListener('error', handler) ile event.message değerini reportError fonksiyonuna gönder. window.addEventListener('unhandledrejection', handler) ile event.reason değerini reportError fonksiyonuna gönder.

Örnek çözümü göster
window.addEventListener('error', (event) => {
  reportError(event.message);
});
window.addEventListener('unhandledrejection', (event) => {
  reportError(event.reason);
});

Kendini test et

  1. Kavramları tanımlarıyla eşleştir

    extends Error
    Özel hata sınıfı
    throw err
    Hata yayılımı
    instanceof
    Tür denetimi
    unhandledrejection
    Global yakalama
  2. Hata sınıfı iskeleti

    class AuthError ____ {
      constructor(message) {
        super(message);
        this.name = 'AuthError';
      }
    }
    Cevabı göster
    class AuthError extends Error {
      constructor(message) {
        super(message);
        this.name = 'AuthError';
      }
    }
  3. Bir async fonksiyonda await reddedilirse ne olur?

    • Promise otomatik fulfilled olur
    • Sessizce yok sayılır
    • Hata try/catch ile yakalanır
    • window.onload tetiklenir
    Cevabı göster

    Hata try/catch ile yakalanır — Doğru! await reddi, try/catch ile yakalanır.

Orta seviye bölümündeki tüm dersler