0Pricing
Zig Academy · درس

إرجاع الأخطاء من الدوال

اجعلوا الفشل صريحاً في التواقيع

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

الفشل في التوقيع

عندما يمكن أن تفشل الدالة، اذكروا ذلك في نوع الإرجاع. فاتحاد أخطاء مثل ParseError!u32 يحذر كل مستدعٍ مسبقًا.

fn parse(s: []const u8) ParseError!u32 {
    // ...
}

إرجاع قيمة النجاح

في مسار النجاح، ما عليكم سوى إرجاع الحمولة كالمعتاد. وسيغلف Zig تلك القيمة العادية في جانب النجاح من الاتحاد نيابةً عنكم.

return 42;

إرجاع خطأ بدلًا منها

للفشل، أعيدوا أحد أخطائكم في الموضع نفسه. ويحدد تصريح الإرجاع الواحد أي جانب من الاتحاد تنتجونه.

if (s.len == 0) return error.Empty;

إرجاع واحد ونتيجتان

يمكن لدالة ذات اتحاد أخطاء أن ترجع قيمة في فرع وخطأً في فرع آخر. وكلاهما يطابق النوع المُعلن.

if (ok) return value;
return error.Failed;

Void مع الأخطاء

يمكن لدالة تنفذ عملًا ولا تنتج قيمة أن تفشل مع ذلك. استخدموا !void لكي لا تُرجع شيئًا عند النجاح أو تُرجع خطأً عند الفشل.

fn save() !void {
    // ...
}

تنتقل الأخطاء إلى موضع الاستدعاء

عند استدعاء دالة قابلة للفشل، تتلقون اتحاد أخطاء أيضًا. لا يمكنكم تجاهله؛ فالمصرّف يجبركم على معالجته.

const n = parse(input);

التقاط الأخطاء باستخدام if

يمكن لـ if تقسيم الاتحاد: التقطوا القيمة في الفرع الرئيسي والخطأ بعد else، مع تسمية كل منهما باستخدام شريط عمودي.

if (parse(input)) |n| {
    use(n);
} else |err| {
    report(err);
}

تسمية مجموعة الأخطاء بدقة

إن سرد المجموعة الدقيقة قبل ! يحافظ على صدق العقد. ويتعرف المستدعُون إلى قائمة الإخفاقات كاملةً من دون قراءة جسم الدالة.

fn open(p: []const u8) FileError!File {}

تعبر الأخطاء حدود الدوال

لا ينتقل الخطأ المُرجع من عمق الشيفرة إلى الخارج إلا عندما تُعلن كل دالة في السلسلة أنها تستطيع الفشل أيضًا.

اجعلوا الفشل صريحًا

هذا هو جوهر معالجة الأخطاء في Zig: لا يختبئ الفشل أبدًا. فـالتوقيع وعد بما يمكن أن يسوء.

المصرّف يساندكم

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

تحقق سريع

تنفذ دالة عملًا لكنها لا تُرجع قيمة مفيدة، ومع ذلك قد تفشل. ما نوع الإرجاع المناسب؟

مراجعة

أعلنتم الدوال القابلة للفشل باستخدام !T، وأرجعتم القيم أو الأخطاء من تصريح إرجاع واحد، ورأيتم المصرّف يجبر المستدعِين على معالجتها. ✅

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

هل درس «إرجاع الأخطاء من الدوال» مجاني؟

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

ماذا ستتعلم في «إرجاع الأخطاء من الدوال»؟

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

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

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

كم من الوقت يستغرق درس «إرجاع الأخطاء من الدوال»؟

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

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

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

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

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