error olayı
- Node.js kursu
- Orta seviye
- Ders 5/116
- 5 dk
'error' olayı ve hata yönetimini öğrenirsin.
error olayı
Node.js'te "error" olayı özel bir olaydır. Bir EventEmitter "error" olayı fırlatır ve hiçbir dinleyici yoksa Node.js işlemi çöker ve yığın izi (stack trace) basar.
Bu yüzden hata üretebilecek yayıncılarda her zaman bir error dinleyicisi eklemelisin: emitter.on("error", (err) => console.log(err.message));. emit("error", new Error("Bağlantı koptu")) çağrısında hata nesnesi dinleyiciye err olarak geçer. Dinleyici varsa uygulama çökmeden devam eder. Bu, hataları aktarıp yakalamanın standart yoludur.
error dinlenmezse
"error" olayı fırlatıldığında dinleyici yoksa Node.js bir Unhandled 'error' event hatası fırlatır ve işlem hemen durur. Bu, diğer olaylardan farklıdır: "data" gibi olaylar dinlenmezse sessizce yok sayılır.
Bu katı davranış hataların gizlice kaybolmamasını sağlar. Üretimde (production) bir error dinleyicisi eksikse uygulama beklenmedik anda çöker. Bu yüzden on("error", ...) eklemek bir zorunluluk gibi düşünülür. Hata nesnesinin message ve stack özellikleri hata ayıklamada yardımcı olur.
Uygulama Hata olayını yakala
emitter örneği oluştur. "error" olayını dinle: dinleyici (err) alsın ve "Yakalandı: " + err.message yazsın. Sonra emitter.emit("error", new Error("Bağlantı koptu")) ile hatayı fırlat. Çıktı: Yakalandı: Bağlantı koptu.
Başlangıç kodu
// emitter örneğini oluştur
// buraya yaz
// "error" olayını dinle
// buraya yaz
// Hata olayını fırlat
// buraya yazÖrnek çözüm
const { EventEmitter } = require("events");
const emitter = new EventEmitter();
emitter.on("error", (err) => console.log("Yakalandı: " + err.message));
emitter.emit("error", new Error("Bağlantı koptu"));Beklenen çıktı
Yakalandı: Bağlantı koptu
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 error fırlatma satırını tamamla
emitter.emit("____", new Error("Bağlantı koptu"));
emitter.emit("error", new Error("Bağlantı koptu"));
Açıklama: error olay adı ile fırlatılır.
2 Kavramı anlamına eşle
| Kavram | Anlamı |
|---|---|
error olayı |
Dinlenmezse çöker |
new Error() |
Hata nesnesi oluşturur |
err.message |
Hata iletisi |
on("error", ...) |
Hata dinleyicisi ekler |
3 "error" olayı dinlenmezse ne olur?
emitter.emit("error", new Error("boom"))- Node.js işlemi çöker ve hata fırlatır Doğru cevap
- Uygulama uyarı verir ama çalışır
- Hiçbir şey olmaz, sessizce geçer
- Olay sonsuza kadar sıraya alınır
Açıklama: error dinlenmezse Node.js çöker.