دالة 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 ورسالةً عندما يتعذر عليها فتح ملف.
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتسلسل التنفيذ
1التكرار المتقدم عبر الجداول
التكرار باستخدام pairs()التكرار باستخدام ipairs()pairs() مقابل ipairs()مراجعة - ورقة الشخصية2المزيد من دوال مكتبة Table
table.concat()إنشاء الجداول و unpack()table.sort()فرز مخصص باستخدام الدوالمراجعة - لوحة أعلى النتائجتدرّب بنفسك: مترجم Lua عبر الإنترنت