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 אונליין