0Pricing
Zig Academy · درس

نشر حالات الفشل باستخدام try

مرّروا الأخطاء إلى الأعلى بكلمة مفتاحية واحدة

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

المعالجة تصبح متكررة

سرعان ما تصبح كتابة if-else حول كل استدعاء قابل للفشل لتمرير خطئه أمرًا مزعجًا. يقدم Zig اختصارًا هو الكلمة المفتاحية try.

تفك try التغليف أو تُرجع الخطأ

ضعوا try قبل استدعاء قابل للفشل. عند النجاح تمنحكم القيمة، وعند الخطأ تُرجع ذلك الخطأ من دالتكم الحالية.

const n = try parse(input);

إنها مجرد صياغة مختصرة

ذلك السطر الواحد مطابق تمامًا لالتقاط الخطأ وإرجاعه بأنفسكم. فـtry تكتب الشيفرة المتكررة نيابةً عنكم.

const n = parse(input) catch |e| return e;

يجب أن تكون دالتكم قابلة للفشل

بما أن try يمكنها إرجاع خطأ، فيجب أن يملك النوع المُرجع للدالة المحيطة اتحاد أخطاء. وإلا رفضها المصرّف.

fn run() !void {
    const n = try parse(input);
}

تسلسل عدة استدعاءات try

ضعوا عدة استدعاءات try متتالية. يوقف كل منها الدالة مبكرًا عند الفشل، ولذلك يُقرأ مسار النجاح من أعلى إلى أسفل.

const f = try open(path);
const data = try read(f);

try في منتصف التعبيرات

يمكنكم وضع try مباشرةً داخل تعبير أكبر. وتتدفق القيمة المفكوكة مباشرةً إلى الاستدعاء المحيط أو العملية الحسابية.

const total = base + try parse(input);

try مع استدعاءات void

حتى عندما يُرجع الاستدعاء !void، استخدموا try لتمرير أي فشل. ولن تحصلوا على قيمة، بل على إرجاع مبكر عند الخطأ فقط.

try file.writeAll(data);

تصعد الأخطاء عبر المكدس

عند استخدام try في كل طبقة، ينتشر الفشل العميق إلى الأعلى حتى يقرر أحد المستدعِين أخيرًا معالجته.

مسار نجاح واضح

الميزة الكبرى هي الوضوح: يختفي تمرير الأخطاء داخل كلمة مفتاحية واحدة، فتبقى المنطق الرئيسي في الواجهة.

try لا تعالج الخطأ

تذكروا أن try تمرر الخطأ فقط، ولا تتعافى منه مطلقًا. وللاستجابة له محليًا، استخدموا catch بدلًا منها.

متى نمرر الخطأ

استخدموا try عندما يكون التصرف الصحيح هو ترك المستدعي يتعامل مع الفشل. فمعظم الدوال الوسيطة تمرر الأخطاء إلى الأعلى ببساطة.

تحقق سريع

كتبتم try doThing() داخل دالة. ماذا يحدث إذا أعادت doThing خطأً؟

مراجعة

تعلمتم أن try تفك التغليف عند النجاح وتُرجع الخطأ خلاف ذلك. وهي اختصار للالتقاط والتمرير، ما يحافظ على نظافة الشيفرة. ✅

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

هل درس «نشر حالات الفشل باستخدام try» مجاني؟

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

ماذا ستتعلم في «نشر حالات الفشل باستخدام try»؟

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

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

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

كم من الوقت يستغرق درس «نشر حالات الفشل باستخدام try»؟

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

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

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

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

  1. مجموعات الأخطاء واتحاد !T
  2. إرجاع الأخطاء من الدوال
  3. نشر حالات الفشل باستخدام try
  4. مجموعات الأخطاء المستنتجة
← العودة إلى Zig Academy