Yükleniyor...

JavaScript hataları

Hata, bir işlevin devam etmeyi reddetme yoludur. Bu sayfa size olmadan { drink: "tea" } kullanır. throw new Error("missing size") label işlevini hemen, return öncesinde durdurur. catch bu Error nesnesini alır. Sayfa satırı caught / missing size okunur.

Bu hata ayıklama sayfası değil

Önceki sayfa console.error("missing size") çağırdı ve ardından bir yedek metin döndürdü. Betik sürdü. Hiçbir şey fırlatılmadı. console.error fırlatmaz.
throw başkadır. Aynı işlevde ondan sonraki satırlar çalışmaz. Yalnızca catch devralabilir. Önceki hata ayıklama satırı fixed / tea / regular idi.

Bir Error iki dizge taşır

new Error("missing size") bir nesne oluşturur. error.name değeri Error olur. error.message geçirilen metindir, missing size. Nesneyi yazdırmak bu iki alanı yazdırmaktan daha az işe yarar.

catch Error nesnesini alır

size yoksa label fırlatır. Çağrı try içindedir, bu yüzden catch çalışır ve error.message yazar. Metin missing size olur.

Eksik boyutu yakala

javascript
function label(order) {
if (!order.size) {
throw new Error("missing size");
}
return order.drink + " / " + order.size;
}
try {
console.log(label({ drink: "tea" }));
} catch (error) {
console.log(error.message);
}

Günlük missing size olur. label hiç return satırına ulaşmadı, bu yüzden burada tea / missing size üretilmez.

Tam sipariş catch adımını atlar

size değerine regular ver. label normal döner. catch çalışmaz.

Tam bir sipariş

javascript
function label(order) {
if (!order.size) {
throw new Error("missing size");
}
return order.drink + " / " + order.size;
}
try {
console.log(label({ drink: "tea", size: "regular" }));
} catch (error) {
console.log(error.message);
}

Günlük tea / regular olur.

finally her iki yolda da çalışır

finally, çağrı başarılıysa try sonrasında, fırlatırsa catch sonrasında çalışır. Her iki durumda da gereken bir adım için kullan.

throw sonrası finally

javascript
function label(order) {
if (!order.size) {
throw new Error("missing size");
}
return order.drink + " / " + order.size;
}
try {
label({ drink: "tea" });
} catch (error) {
console.log(error.message);
} finally {
console.log("done");
}

Günlükler önce missing size, sonra done olur. Fırlatmadan sonra finally done yazar.

Adı ve iletiyi oku

Aynı Error nesnesini yakala ve iki alanı ayrı satırlarda yaz.

Ad ve ileti

javascript
try {
throw new Error("missing size");
} catch (error) {
console.log(error.name);
console.log(error.message);
}

Günlükler önce Error, sonra missing size olur. Böylece error.name Error, error.message ise missing size olur.

Denetim fırlatır, çağıran yakalar

requireSize kuralı bilir. Fırlatır ve etiket kurmaz. Neyin yazılacağına çağıran karar verir.

Denetimi ayır

javascript
function requireSize(order) {
if (!order.size) {
throw new Error("missing size");
}
}
try {
requireSize({ drink: "tea" });
console.log("ok");
} catch (error) {
console.log(error.message);
}

Günlük missing size olur. console.log("ok") satırı çalışmaz, çünkü requireSize fırlatması catch bloğuna atladı.

Fincanın altındaki satır

Sayfa label işlevini boyutsuz çağırır. catch görünür satırı iletiden kurar.

Sayfa demosu — yakalanmış hata

html
<!DOCTYPE html>
<html>
<body>
<p id="line">…</p>
<script>
function label(order) {
if (!order.size) {
throw new Error("missing size");
}
return order.drink + " / " + order.size;
}
let line = "";
try {
line = label({ drink: "tea" });
} catch (error) {
line = "caught / " + error.message;
}
document.getElementById("line").textContent = line;
</script>
</body>
</html>

Satır caught / missing size okunur. Tam bir sipariş tea / regular döndürür ve catch kullanılmadan kalırdı. fixed / tea / regular hata ayıklama sayfasındaydı.

Tezgâhta

  1. try içinde label({ drink: "tea" }) çağır. catch günlüğü missing size olur.
  2. label({ drink: "tea", size: "regular" }) çağır. Günlük tea / regular olur ve catch çalışmaz.
  3. Başarısız çağrının çevresine finally ekle. İkinci günlük done olur.
  4. error.name ve error.message oku. Günlükler Error ve missing size olur.
  5. Sayfa satırını oku: caught / missing size.

Tezgâhtaki kaçırmalar

throw işlevi durdurur. console.error fırlatmaz ve işlevi durdurmaz.

  • throw sonrasındaki satırların çalışmasını beklemek
  • catch unutup hatayı yakalanmamış bırakmak
  • finally yalnızca başarıdan sonra çalışır sanmak
  • error.message alanını Error adı sanmak
  • Satırı fixed / tea / regular okumak

Bunu tut

  • throw new Error("missing size") label işlevini return öncesinde durdurur
  • catch Error nesnesini alır ve error.message yazar; metin missing size olur
  • Tam sipariş tea / regular yazar ve catch atlanır
  • Fırlatmadan sonra finally done yazar
  • Sayfa satırı caught / missing size okunur

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör

❓
5
Sorular
🎯
70%
Geçmek İçin
♾️
∞
Süre
🔄
∞
Deneme

📝 Talimatlar

  • Her soruyu dikkatle okuyun
  • Her soru için en iyi cevabı seçin
  • Quiz'i istediğiniz kadar tekrar alabilirsiniz
  • İlerlemeniz üstte gösterilecek