CodeBlanks Logo Icon CodeBlanks

error olayı

'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

index.js
// emitter örneğini oluştur
// buraya yaz

// "error" olayını dinle
// buraya yaz

// Hata olayını fırlat
// buraya yaz

Örnek çözüm

index.js
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

Soru
emitter.emit("____", new Error("Bağlantı koptu"));
Cevap
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?

index.js
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.

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