Ruby:
טיפול בשגיאות
איך לעשות:
רובי משתמשת ב־begin
, rescue
, ensure
ו־end
כדי לטפל בשגיאות. אתה מעטפת את הקוד הרגיש ב־begin
ו־end
. אם מתרחשת שגיאה, rescue
נכנס לפעולה.
begin
# קוד רגיש נכנס כאן.
puts 10 / 0
rescue ZeroDivisionError => e
puts "אופס! אי אפשר לעשות את זה: #{e.message}"
ensure
puts "זה תמיד רץ, יש שגיאה או לא."
end
פלט לדוגמא:
אופס! אי אפשר לעשות את זה: מחולק ב־0
זה תמיד רץ, יש שגיאה או לא.
התעמקות
בעבר, טיפול בשגיאות בשפות תכנות הולך והתקדם מאוד, כאשר שפות קדומות לעיתים קרובות היו עם מנגנונים גסים או אפילו לא קיימים. הניהול של חריגים ברובי מושרה משפות כמו פייתון וסמולטוק.
חלופות ל־begin-rescue
ברובי כוללות שימוש ב־rescue
בהגדרות פונקציה או שימוש ב־throw
ו־catch
לזרימת בקרה לא סטנדרטית, למרות שהם לא משמשים לטיפול בשגיאות רגילות.
פרט מעניין אחד: חריגי רובי הם אובייקטים (מופעים של מחלקה Exception
וצאצאיה), כך שניתן להגדיר מחלקות שגיאה מותאמות אישית ולעשות יותר מסתם לרשום שגיאות – אתה יכול להעביר מצב מורכב ברחבי התוכנית לטיפול יציב יותר בשגיאות.
ראה גם
- התיעוד של רובי על חריגים וטיפול בשגיאות: ruby-doc.org
- מדריך מפורט על המתודולוגיה הטובה ביותר לטיפול בשגיאות ברובי: thoughtbot.com