0Pricing
JavaScript Academy · درس

try/catch/finally وthrow والأخطاء المخصصة

استخدموا try/catch/finally، واطرحوا أخطاء بسيطة، وعرّفوا Error مخصصًا صغيرًا لرسائل أوضح

try/catch/finally وthrow والأخطاء المخصصة درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 2. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 2 دروس في المجموع.

مقدمة إلى معالجة الأخطاء

الهدف: التقاط الأخطاء بأمان والحفاظ على استقرار البرامج.

  • أساسيات try/catch
  • استخدام throw مع رسالة واضحة
  • استخدام finally للتنظيف
  • إنشاء Error مخصص صغير
try/catch/finally وthrow والأخطاء المخصصة — رسم توضيحي 1

أساسيات try/catch

غلّفوا العمليات التي قد تنطوي على مخاطر باستخدام try. وفي catch، اعرضوا رسالة قصيرة ومفيدة.

// try/catch around risky code
try {
  const data = JSON.parse("{\"name\":\"Ayla\"}");
  console.log("Parsed:", data.name);
} catch (e) {
  // e.message is short and useful on mobile
  console.log("Failed to parse:", e.message);
}
try/catch/finally وthrow والأخطاء المخصصة — رسم توضيحي 2

أساسيات throw

استخدموا throw new Error("message") لإيقاف التنفيذ وشرح الخطأ الذي حدث.

// Throw when inputs are invalid
function doubleNumber(n) {
  if (typeof n !== "number") {
    throw new Error("Number required");
  }
  return n * 2;
}

try {
  console.log(doubleNumber(4));
  console.log(doubleNumber("4")); // will throw
} catch (e) {
  console.log("Error:", e.message);
}
try/catch/finally وthrow والأخطاء المخصصة — رسم توضيحي 3

استخدام finally للتنظيف

يُنفَّذ finally سواء نجح try أم فشل، ولذلك يفيد في إغلاق الموارد.

// finally runs after try/catch — great for cleanup
let opened = false;

try {
  opened = true;
  console.log("Opened:", opened);
  // Force an error to see finally still run
  JSON.parse("{ bad }");
} catch (e) {
  console.log("Caught:", e.message);
} finally {
  opened = false;
  console.log("Closed:", opened);
}
try/catch/finally وthrow والأخطاء المخصصة — رسم توضيحي 4

خطأ مخصص (مقدمة مبسطة)

أنشئوا InputError صغيرًا لمشكلات الإدخال. استخدموا instanceof لمعالجته على نحو مخصص.

// Make a small custom error
class InputError extends Error {
  constructor(message) {
    super(message);
    this.name = "InputError";
  }
}

function positive(n) {
  if (typeof n !== "number") {
    throw new InputError("Number required");
  }
  if (n <= 0) {
    throw new InputError("Must be positive");
  }
  return n;
}

try {
  console.log("OK:", positive(3));
  console.log("Fail:", positive(0));
} catch (e) {
  if (e instanceof InputError) {
    console.log("Input problem:", e.message);
  } else {
    // Unknown error: rethrow or log differently
    console.log("Unexpected:", e.message);
  }
}
try/catch/finally وthrow والأخطاء المخصصة — رسم توضيحي 5

نصائح وقائمة تحقق

نصائح:

  • تحققوا من المدخلات مبكرًا؛ وأطلقوا رسائل قصيرة.
  • استخدموا finally للتنظيف، مثل إغلاق الأعلام والمؤقتات وغير ذلك.
  • لا تتجاهلوا الأخطاء بصمت؛ سجّلوها بإيجاز أو أعيدوا إطلاقها.
try/catch/finally وthrow والأخطاء المخصصة — رسم توضيحي 6

اختبار finally

تحقق سريع: سلوك finally.

try/catch/finally وthrow والأخطاء المخصصة — رسم توضيحي 7

مراجعة

مراجعة: غلّفوا التعليمات البرمجية التي قد تنطوي على مخاطر باستخدام try/catch، وأطلقوا أخطاء قصيرة ومفيدة، واستخدموا finally للتنظيف، وأنشئوا أخطاء مخصصة صغيرة لمعالجة أوضح.

try/catch/finally وthrow والأخطاء المخصصة — رسم توضيحي 8

الأسئلة الشائعة

هل درس «try/catch/finally وthrow والأخطاء المخصصة» مجاني؟

نعم — نص درس «try/catch/finally وthrow والأخطاء المخصصة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 2 دروس في المجموع.

ماذا ستتعلم في «try/catch/finally وthrow والأخطاء المخصصة»؟

استخدموا try/catch/finally، واطرحوا أخطاء بسيطة، وعرّفوا Error مخصصًا صغيرًا لرسائل أوضح تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟

لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 2.

كم من الوقت يستغرق درس «try/catch/finally وthrow والأخطاء المخصصة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟

نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. try/catch/finally وthrow والأخطاء المخصصة
  2. البرمجة الدفاعية والتحقق من المدخلات
← العودة إلى JavaScript Academy