דלג לתוכן הראשי

טיפול בשגיאות

מהי שגיאה?​

שגיאה היא מצב שבו הקוד נתקל בבעיה שאינה מאפשרת לו להמשיך לפעול כראוי. טיפול בשגיאות מאפשר לתוכנית להתמודד עם מצבים כאלה בצורה מסודרת ולמנוע קריסה של התוכנית.

שימוש ב-pcall​

ב-Roblox Studio, ניתן להשתמש בפונקציה pcall (Protected Call) כדי לטפל בשגיאות. הפונקציה pcall מריצה פונקציה אחרת ומחזירה ערך בוליאני המציין אם הפעולה הצליחה או נכשלה.

דוגמה - ברווזים​

נניח שיש לנו פונקציה שמדפיסה את שם הברווז, אבל לפעמים השם עלול להיות nil (לא קיים):

function printDuckName(duck)
if duck.name then
print("שם הברווז הוא " .. duck.name)
else
error("השם של הברווז לא קיים!")
end
end

local dannyDuck = {name = "דני"}
local unknownDuck = {}

-- ננסה להדפיס את השם של הברווזים
local success, message = pcall(printDuckName, dannyDuck)
if not success then
print("שגיאה: " .. message)
end

success, message = pcall(printDuckName, unknownDuck)
if not success then
print("שגיאה: " .. message)
end