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