Global hata yakalama
window.onerror ve unhandledrejection ile yakalanmamış hataları toplamayı öğrenirsin.
Yakalanmamış hataları toplama
try/catch dışında kalan hatalar tarayıcının konsoluna düşer. window.addEventListener('error', handler) ile bunları merkezi olarak yakalarsın. İşleyici, hatanın message, filename ve lineno bilgilerini alır. Bu dinleyiciler, kullanıcıların yaşadığı gerçek hataları bir hata raporlama servisine göndermenin temel yoludur. Böylece üretimdeki sorunları görünür hale getirirsin.
window.addEventListener('error', (event) => {
reportError(event.message, event.filename);
}); unhandledrejection olayı
Bir promise reddedilir ve hiç .catch bağlanmazsa unhandledrejection olayı tetiklenir. İşleyici event.reason özelliğinden reddedilme sebebini alır. Reddedilme sebebi genellikle bir Error nesnesi veya bir dizedir. Bu olayı dinleyerek, yakalanmamış promise hatalarını da senkron hatalar gibi kaydedebilir ve analiz edebilirsin.
window.addEventListener('unhandledrejection', (event) => {
console.error('Reddedildi:', event.reason);
});Bu olay, hata raporlama servislerinin temelidir.
Uygulama Global dinleyicileri yaz
İki olay dinleyicisi yaz. Birincisi window.addEventListener('error', handler) ile event.message değerini reportError fonksiyonuna göndersin. İkincisi window.addEventListener('unhandledrejection', handler) ile event.reason değerini reportError fonksiyonuna göndersin.
Örnek çözümü göster
window.addEventListener('error', (event) => {
reportError(event.message);
});
window.addEventListener('unhandledrejection', (event) => {
reportError(event.reason);
});
Kendini test et
-
Hangi olay yakalanmamış promise reddedilmelerini yakalar?
- window.onerror
- unhandledrejection
- beforeunload
- DOMContentLoaded
Cevabı göster
unhandledrejection — Doğru! unhandledrejection olayı reddedilmeleri yakalar.
-
Reddedilme olayını ekle
window.addEventListener(____, (event) => { logRejection(event.reason); });Cevabı göster
window.addEventListener('unhandledrejection', (event) => { logRejection(event.reason); }); -
Olayları kaynaklarıyla eşleştir
- error
- Senkron çalışma hatası
- unhandledrejection
- Yakalanmamış promise
- event.message
- Hata metni
- event.reason
- Reddedilme sebebi