Menu
CoddyTech

دالة error()

جزء من قسم المنطق وتسلسل التنفيذ في رحلة Lua على Coddy. الدرس 32 من 54.

أحيانًا يحتاج برنامجك إلى التوقف فورًا عند حدوث خطأ ما. توفّر Lua الدالة error() لمعالجة هذه الحالات من خلال إطلاق خطأ وإيقاف تنفيذ البرنامج النصي.

تأخذ الدالة error() رسالةً كوسيط وتوقف البرنامج، مع عرض تلك الرسالة لتوضيح ما حدث من خطأ. إليك الصياغة الأساسية:

error("Something went wrong!")

يكون هذا مفيدًا بشكل خاص عند التحقق من مدخلات الدالة. على سبيل المثال، إذا كانت الدالة تتوقع عددًا موجبًا لكنها تتلقى عددًا سالبًا، فيمكنك استخدام error() لمنع استمرار التنفيذ:

function calculateSquareRoot(num)
    if num < 0 then
        error("Cannot calculate square root of a negative number")
    end
    return math.sqrt(num)
end

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

تُستخدم error() للأخطاء الفعلية، مثل استدعاء دالة بنوع قيمة غير صحيح. أما في حالات الفشل التي ينبغي للجهة المستدعية توقّعها، مثل غياب عنصر أو إدخال المستخدم غير الصالح، فعادةً لا تُصدر شيفرة Lua خطأً. بدلًا من ذلك، تُعيد الدالة nil ورسالة، وتتحقق الجهة المستدعية من النتيجة:

function findItem(inventory, name)
    if inventory[name] == nil then
        return nil, "No item called " .. name
    end
    return inventory[name]
end

local count, err = findItem({potion = 3}, "sword")
if count then
    print("You have " .. count)
else
    print(err)  -- لا يوجد عنصر يُسمّى sword
end

تعمل دوال Lua نفسها بالطريقة ذاتها: تُعيد tonumber("abc") القيمة nil، وتُعيد io.open() القيمة nil ورسالةً عندما يتعذر عليها فتح ملف.

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتسلسل التنفيذ

تدرّب بنفسك: مترجم Lua عبر الإنترنت