حدود الأخطاء (مفاهيميًا) من دون أطر عمل
أنشئوا حدود أخطاء صغيرة في JavaScript العادي: try/catch حول الشيفرة الخطرة، ومساعدات تغليف، وtry/catch غير متزامن، وقيمًا احتياطية، وتسجيلًا محدودًا
حدود الأخطاء (مفاهيميًا) من دون أطر عمل درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
الصورة العامة
الهدف: منع فشل واحد من تعطيل الشاشة بأكملها.
- استخدم try/catch حول المواضع التي قد تفشل
- أضف مساعدًا صغيرًا باسم runSafe
- تعامل مع async باستخدام try/catch أيضًا
- أعد قيمًا بديلة وسجّل رسالة قصيرة

حدّ محلي: التحليل
غلّف الخطوة التي قد تفشل فقط، وهي JSON.parse. وأعد كائن بديل بسيطًا عند الفشل.
// Try/catch boundary: parse user JSON with a fallback
function safeParseUser(json) {
try {
const obj = JSON.parse(json);
// minimal validation
if (!obj || typeof obj.name !== "string") {
return { name: "Guest" };
}
return { name: obj.name };
} catch (err) {
// fallback on parse error
return { name: "Guest" };
}
}
console.log("ok:", safeParseUser("{\"name\":\"Ayla\"}"));
console.log("bad:", safeParseUser("{oops}"));

مساعد runSafe
أنشئ مساعدًا صغيرًا وأعد استخدامه. اجعل السجلات قصيرة، وتجنّب كشف الأسرار.
// A tiny boundary helper for sync functions
function runSafe(fn, fallback) {
try {
return fn();
} catch (e) {
// log minimal info for beginners
console.log("error:", String(e));
return fallback;
}
}
// Use it
const resultOk = runSafe(function () {
return 2 + 2;
}, 0);
const resultFail = runSafe(function () {
// simulate crash
throw new Error("boom");
}, 0);
console.log("ok:", resultOk, "fail:", resultFail);

حدّ العمليات غير المتزامنة
في الأعمال غير المتزامنة، استخدم try/catch حول await وأعد سلسلة أو قيمة بديلة.
// Async boundary: try/catch inside an async function
async function fetchNameFake(id) {
// simulate failure for odd ids
if (id % 2 === 1) {
throw new Error("not found");
}
return "Ayla";
}
async function loadName(id) {
try {
const name = await fetchNameFake(id);
return name;
} catch (e) {
console.log("async error:", String(e));
return "Guest";
}
}
(async function () {
console.log("even:", await loadName(2));
console.log("odd :", await loadName(3));
})();

اعزل موضع الخطر
لا تغلّف التطبيق بأكمله. اعزل الخطوة التي قد تفشل حتى لا يمنع فشلها كل شيء.
// Boundary only around the risky step, rest continues
function renderCard(userJson) {
// boundary: parse
const user = safeParseUser(userJson);
// rest of rendering can continue with fallback
return "Hello " + user.name;
}
console.log(renderCard("{\"name\":\"Lina\"}"));
console.log(renderCard("{broken}")); // still renders with fallback

عادات التعامل عند الحدود
قائمة التحقّق:
- ضع try/catch صغيرًا حول الاستدعاءات التي قد تفشل.
- أعد قيمة بديلة صغيرة.
- سجّل رسالة قصيرة من دون أسرار.
- كرّر النمط نفسه مع الاستدعاءات غير المتزامنة.

اختبار أساسيات حدود الأخطاء
تحقّق سريع: حدّ أخطاء باستخدام JavaScript العادي.

مراجعة
مراجعة: أضف try/catch محليًا حول الشيفرة التي قد تفشل، واستخدم مساعدًا باسم runSafe، وتعامل مع async باستخدام try/catch، وقدّم قيمًا بديلة حتى تواصل الشاشة عملها.

الأسئلة الشائعة
هل درس «حدود الأخطاء (مفاهيميًا) من دون أطر عمل» مجاني؟
نعم — نص درس «حدود الأخطاء (مفاهيميًا) من دون أطر عمل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
ماذا ستتعلم في «حدود الأخطاء (مفاهيميًا) من دون أطر عمل»؟
أنشئوا حدود أخطاء صغيرة في JavaScript العادي: try/catch حول الشيفرة الخطرة، ومساعدات تغليف، وtry/catch غير متزامن، وقيمًا احتياطية، وتسجيلًا محدودًا تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟
لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «حدود الأخطاء (مفاهيميًا) من دون أطر عمل»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟
نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- التحقق من المدخلات وأساسيات الهروب
- دمج الكائنات بأمان؛ التجميد والإحكام
- حدود الأخطاء (مفاهيميًا) من دون أطر عمل