try/catch
- Node.js kursu
- Orta seviye
- Ders 77/116
- 5 dk
try/catch ile hata yakalamayı öğrenirsin.
try/catch
try/catch, hata fırlatabilecek kodu güvenli biçimde çalıştırmanın yoludur. try bloğundaki kod bir hata fırlatırsa, akış catch bloğuna atlar ve hata orada yakalanır.
Örneğin try { risky(); } catch (e) { console.log(e.message); } — eğer risky() bir hata fırlatırsa e değişkenine konur ve catch bloğu çalışır. Hata yoksa catch atlanır ve normal akış devam eder. e fırlatılan Error nesnesidir; e.message, e.stack gibi özelliklerine erişebilirsin. Böylece program beklenmedik hatalarda çökmeden devam eder.
catch değişkeni
catch (e) ifadesindeki e, fırlatılan hatayı tutan değişkendir. İstediğiniz adı verebilirsin; e, err, error yaygın seçimlerdir.
Bu değişken yalnız catch bloğu içinde geçerlidir. e instanceof Error ile fırlatılan şeyin gerçekten bir Error olup olmadığını denetleyebilirsin. Ayrıca e.message ile iletiyi, e.stack ile çağrı izini alabilirsin. Eğer throw "dize" gibi Error olmayan bir değer fırlatılırsa e o değeri tutar; bu yüzden her zaman new Error() ile fırlatmak en iyi uygulamadır. Böylece hata nesnesi her zaman tutarlıdır.
Uygulama fırlat ve yakala, instanceof yazdır
risky adında bir fonksiyon tanımla; gövdesi throw new Error("test") olsun. try içinde risky()'i çağır. catch (e) içinde console.log(e instanceof Error) yazdır.
Başlangıç kodu
// risky fonksiyonu tanımla — Error fırlatsın
// try ile çağır, catch ile yakala
// instanceof Error sonucunu yazdır
// buraya yazÖrnek çözüm
function risky() {
throw new Error("test");
}
try {
risky();
} catch (e) {
console.log(e instanceof Error);
}Beklenen çıktı
true
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 try bloğunu tamamla
____ { risky(); } catch (e) { console.log(e.message); }
try { risky(); } catch (e) { console.log(e.message); }
Açıklama: try bloğu riskli kodu çalıştırır.
2 Bloğu rolüne eşle
| Kavram | Anlamı |
|---|---|
try |
Riskli kodu çalıştırır |
catch |
Hatayı yakalar |
throw |
Hata fırlatır |
e |
Yakalanan hata |
3 try bloğunda hata fırlatılmazsa ne olur?
try { ... } catch (e) { ... }- catch bloğu atlanır, normal akış devam eder Doğru cevap
- Program çöker
- catch yine de çalışır
- Hata fırlatılır
Açıklama: Hata yoksa catch atlanır.