CodeBlanks Logo Icon CodeBlanks

try...catch temelleri

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

try ve catch ile hatayı yakalayıp uygulamanın çökmesini engellemeyi öğrenirsin.

try...catch temelleri

JavaScript'te çalışma zamanı hataları (runtime error) uygulamanın çökmesine neden olur. Bunu önlemek için riskli kodu try bloğuna, hata yakalamayı catch bloğuna yazarsın. try içinde bir hata oluştuğunda yürütme hemen catch'e atlar.

Örnek: try { riskyCode(); } catch (e) { console.error(e.message); }. Burada e parametresi hatayı taşır. Hata yakalanmazsa tarayıcı konsola kırmızı bir hata yazar ve geri kalan kod çalışmaz.

Hata yakalamanın faydası

catch bloğu hatayı yakalayıp uygulamanın çökmesini engeller. Parametre adı genelde e ya da err olur; bu nesne hatanın message, name ve stack gibi bilgilerini taşır.

Örneğin kullanıcıdan gelen veriyi sayıya çevirirken parseInt başarısız olabilir. Bu işlemi try içine alıp catch'te varsayılan bir değer döndürürsen uygulama kesintisiz devam eder. Hata yakalama, kullanıcıya kırıcı mesajlar göstermek yerine nazik bir uyarı sunmanı sağlar.

Uygulama try/catch ile güvenli bölme

divide adında bir fonksiyon tanımla. a ve b parametreleri alsın. Gövdede try bloğu aç ve içinde return a / b yaz. 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 {
    return a / b;
  } catch (e) {
    console.error(e.message);
    return null;
  }
}
divide(10, 0);

Kendini test et

  1. Hangisi geçerli bir try/catch yapısıdır?

    • catch { riskyCode(); } try (e) { handleError(e); }
    • try { riskyCode(); } catch (e) { handleError(e); }
    • if (error) { try(); } else { catch(); }
    • while (try) { catch(e); }
    Cevabı göster

    try { riskyCode(); } catch (e) { handleError(e); } — Doğru. Önce try, sonra catch yazılır ve catch bir parametre alır.

  2. catch bloğunu ekle

    function safeDivide(a, b) {
      try {
        return a / b;
      } ____(e) {
        console.error("Hata:", e.message);
        return null;
      }
    }
    Cevabı göster
    function safeDivide(a, b) {
      try {
        return a / b;
      } catch(e) {
        console.error("Hata:", e.message);
        return null;
      }
    }
  3. try/catch durumlarını sonucuna eşleştir

    try içinde hata yok
    catch çalışmaz
    try içinde hata var
    catch çalışır
    catch (e) parametresi
    hata bilgisini taşır
    try/catch kullanılmazsa
    uygulama çöker

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