Error Handling ve Debugging Teknikleri
- 10
- (1)
- (5)
- 29 Oca 2025
Hata yönetimi (Error Handling) ve hata ayıklama (Debugging), yazılım geliştirmenin önemli bileşenlerindendir. Node.js gibi dinamik ve asenkron çalışan bir ortamda, hataları yakalamak ve yönetmek uygulamanın güvenilirliğini artırır. Bu makalede, Node.js projelerinde etkili hata yönetimi ve debugging tekniklerini inceleyeceğiz.
Hata Türleri
Node.js uygulamalarında üç ana hata türü bulunmaktadır:
Sözdizimi Hataları (Syntax Errors): Kodu yanlış yazmaktan kaynaklanır. Örnek:
console.log('Merhaba);
Çalışma Zamanı Hataları (Runtime Errors): Çalışma esnasında ortaya çıkar. Örnek:
const veri = JSON.parse('hatalı json formatı');
Mantıksal Hatalar (Logical Errors): Programın beklenmeyen şekilde çalışmasına neden olan hatalardır. Örnek:
function toplama(a, b) {
return a - b; // Yanlış işlem
}
Hata Yönetimi Teknikleri
1. Try-Catch Bloğu Kullanımı
Senkron kodlarda hataları yakalamak için try-catch
blokları kullanılır.
try {
let veri = JSON.parse('{"ad": "Ahmet"}');
console.log(veri.ad);
} catch (error) {
console.error('JSON parse hatası:', error.message);
}
2. Asenkron Hataların Yönetimi
Asenkron işlemlerde hataları catch
bloğuyla yönetebilirsiniz.
const fs = require('fs/promises');
async function dosyaOku() {
try {
let veri = await fs.readFile('olmayan_dosya.txt', 'utf8');
console.log(veri);
} catch (error) {
console.error('Dosya okuma hatası:', error.message);
}
}
dosyaOku();
3. Global Hata Yönetimi
Node.js uygulamalarında global hataları yakalamak için aşağıdaki yöntemler kullanılabilir:
process.on('uncaughtException')
process.on('uncaughtException', (error) => {
console.error('Beklenmeyen hata yakalandı:', error);
});
process.on('unhandledRejection')
process.on('unhandledRejection', (reason, promise) => {
console.error('Unhandled Promise Rejection:', reason);
});
Debugging Teknikleri
Hataları tespit etmek ve düzeltmek için kullanılan yaygın debugging yöntemleri şunlardır:
1. Ekrana Yazdırarak Debugging
En basit hata ayıklama yöntemi, değişkenleri ekrana yazdırmaktır. console.log()
ile değişkenleri ekrana yazdırabilirsiniz.
const kullanici = { ad: 'Mehmet', yas: 30 };
console.log('Kullanıcı Bilgisi:', kullanici);
2. Node.js Debugger Kullanımı
Node.js, dahili bir hata ayıklama aracına sahiptir. Debugger'ı başlatmak için şu komutu kullanabilirsiniz:
node --inspect app.js
Veya tarayıcı üzerinden hata ayıklamak için:
node --inspect-brk app.js
Bu komut ile Chrome Developer Tools üzerinden kodunuzu debug edebilirsiniz.
3. VS Code Debugger Kullanımı
VS Code ile debugging yapmak için şunları yapabilirsiniz:
VS Code'u açın ve Debug paneline gidin.
Run and Debug > Node.js seçeneğini seçin.
Satırların başlarına Breakpoints (Kesme Noktaları) ekleyerek hata ayıklayın.
util.debuglog() Kullanımı
util.debuglog()
fonksiyonu, hata ayıklamak için çevresel değişkenlere bağlı olarak mesajları görüntüler.
const util = require('util');
const debug = util.debuglog('app');
debug('Bu hata ayıklama mesajıdır');
Komut satırında aşağıdaki gibi çalıştırıldığında mesaj görüntülenir:
NODE_DEBUG=app node app.js
Hata yönetimi ve debugging, Node.js uygulamalarının kararlı ve güvenilir olmasını sağlamak için kritik öneme sahiptir. try-catch
, async/await
ile hata yönetimi ve console.log()
, node inspect
, VS Code Debugger gibi araçlar kullanarak hataları hızlıca tespit edip düzeltebilirsiniz. Daha sağlam ve sürdürülebilir uygulamalar geliştirmek için bu teknikleri projelerinizde uygulayabilirsiniz.
İlişkili İçerikler
Async/Await, Node.js uygulamalarında asenkron işlemleri daha okunabilir ve yönetilebilir hale getiren modern bir JavaScript yapısıdır.