CodeBlanks Logo Icon CodeBlanks

Özet - Hatalar

JavaScript kursu · Başlangıç · Ders 122/133

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

  1. 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
  2. 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");
      }
    }

Başlangıç bölümündeki tüm dersler