JavaScript
Meydan okuma - Hata yönetimi
try/catch ve throw kullanarak geçerli yaşı kontrol eden bir fonksiyon yazarsın.
Yaş doğrulama meydan okuması
Bu meydan okumada bir yaş doğrulama fonksiyonu yazacaksın. Fonksiyon bir age parametresi alır ve geçerliyse true, değilse false döndürür.
Doğrulama try/catch ile sarılır. try bloğunda negatif yaş kontrolü yapılır; geçersizse throw new Error(...) ile hata fırlatılır. catch bloğu hatayı yakalayıp false döndürür.
Bu yapı, hata fırlatmayı ve yakalamayı bir arada kullanır. Error nesnesi bir message özelliği taşır; gerektiğinde e.message ile okuyabilirsin.
try/catch yapısı
try bloğu riskli kodu çalıştırır. Hata oluşmazsa catch atlanır; hata oluşursa catch (e) bloğu çalışır ve e parametresi hatayı taşır.
throw new Error("mesaj") ile bilinçli olarak hata fırlatabilirsin. Bu, normal akışı keser ve kontrolü catch'e geçirir.
Yaş doğrulamada negatif yaş bir doğrulama hatasıdır. throw ile bu durumu ifade eder, catch ile nazikçe false döndürürsün. Bu, programın çökmesini engeller.
Uygulama validateAge fonksiyonunu yaz
validateAge adında bir fonksiyon tanımla. age parametresi alsın. Bir try bloğu aç ve içinde if (age < 0) ile negatif yaş kontrolü yap; koşul doğruysa throw new Error(...) ile hata fırlat. try sonunda return true ile geçerli yaşı bildir. Hata durumunda catch (e) bloğu return false döndürsün.
Örnek çözümü göster
validateAge içinde try bloğu aç. if (age < 0) ile negatif yaş kontrolü yap; throw new Error fırlat. return true ile geçerli yaşı bildir. catch (e) bloğunda return false döndür.
Örnek çözüm:
function validateAge(age) {
try {
if (age < 0) {
throw new Error("Negatif yaş");
}
return true;
} catch (e) {
return false;
}
}
Kendini test et
-
catch bloğu ne zaman çalışır?
try {
// riskli kod
} catch (e) {
// hata yönetimi
}
- try bloğunda hata fırlatıldığında
- try bloğu sorunsuz bitince
- finally bloğu yoksa
- return çağrılınca
Cevabı göster
try bloğunda hata fırlatıldığında — Doğru. try bloğunda bir hata fırlatıldığında akış catch bloğuna atlar ve e parametresi hatayı taşır.
-
Çok büyük yaş için hata fırlat
function validateAge(age) {
try {
if (age > 120) {
____;
}
return true;
} catch (e) {
return e.message;
}
}
Cevabı göster
function validateAge(age) {
try {
if (age > 120) {
throw new Error("Çok büyük");
}
return true;
} catch (e) {
return e.message;
}
}
Sıradaki ders: Başlangıç bölüm sınavı