Özet - Hata yönetimi
Ö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
-
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
-
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'; } } -
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.