try...catch temelleri
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
-
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.
-
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; } } -
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