Özet - Hatalar
try/catch/finally ve throw kullanarak böleni 0 olan bir bölme işlemini güvenle yürütürsün.
Özet - Hatalar
Bu grupta hata yönetiminin temelini öğrendin. try riskli kodu, catch hatayı yakalar, finally her durumda çalışır. throw new Error("mesaj") ile kendi hatanı fırlatıp catch ile yakalayabilirsin. Error nesnesinin message, name ve stack özellikleri hatanın ayrıntılarını verir.
Şimdi tüm bu araçları bir araya getirerek sıfıra bölme hatasını güvenle yöneten bir fonksiyon yazacaksın. throw ile hatayı fırlatıp try...catch...finally ile yakalayıp temizlik yapacaksın. Bu, gerçek uygulamalardaki hata yönetiminin özüdür.
Uygulama Sıfıra bölme hatasını yönet
divide adında bir fonksiyon tanımla. a ve b parametreleri alsın. Gövdede try bloğu aç. İçinde if (b === 0) koşuluyla kontrol et; sağlanınca throw new Error("Sıfıra bölme") çağrısı yapsın, değilse return a / b yapsın. catch (e) bloğunda console.error(e.message) çağrısı yapsın ve return null döndürsün. Sonra divide(10, 0) çağrısını yap.
Örnek çözümü göster
function divide(a, b) {
try {
if (b === 0) {
throw new Error("Sıfıra bölme");
}
return a / b;
} catch (e) {
console.error(e.message);
return null;
}
}
divide(10, 0);
Uygulama try/catch/finally ile tam yönetim
Önceki divide fonksiyonuna bir finally bloğu ekle. finally bloğunda console.log("İşlem tamam") çağrısı yapsın. try, catch ve finally blokları sırasıyla yer almalı. Sonra divide(10, 0) çağrısını yap.
Örnek çözümü göster
function divide(a, b) {
try {
if (b === 0) {
throw new Error("Sıfıra bölme");
}
return a / b;
} catch (e) {
console.error(e.message);
return null;
} finally {
console.log("İşlem tamam");
}
}
divide(10, 0);
Kendini test et
-
Hata yönetimi kavramlarını eşleştir
- try
- Riskli kod bloğu
- catch
- Hatayı yakalar
- finally
- Her zaman çalışır
- throw
- Hata fırlatır
- Error
- Hata nesnesi
-
finally bloğunu tamamla
function divide(a, b) { try { if (b === 0) throw new Error("Sıfıra bölme"); return a / b; } catch (e) { console.error(e.message); return null; } ____ { console.log("İşlem tamam"); } }Cevabı göster
function divide(a, b) { try { if (b === 0) throw new Error("Sıfıra bölme"); return a / b; } catch (e) { console.error(e.message); return null; } finally { console.log("İşlem tamam"); } }