Menu
Coddy logo textTech

מהי חריגה?

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Ruby של Coddy. שיעור 43 מתוך 56.

כשמשהו משתבש בזמן הריצה — חלוקה באפס, ניתוח של "abc" כמספר שלם, קריאה למתודה על nil — Ruby מעלה חריגה. התוכנית נעצרת, ו-Ruby מדפיסה מה קרה וגם היכן זה קרה.

10 / 0
# ZeroDivisionError: חילוק ב-0

כל סוג של כשל הוא מחלקה בפני עצמה. כמה נפוצים:

  • ZeroDivisionError: חלוקה של מספר שלם באפס
  • ArgumentError: ארגומנטים שגויים שהועברו למתודה (Integer("abc"))
  • NoMethodError: קריאה למתודה שלמקבל אין (nil.upcase)
  • TypeError: ביצוע פעולה על סוג אובייקט שגוי ("a" + 1)

לכל מחלקת חריגות יש .message: תיאור קריא לבני אדם ש-Ruby מדפיסה כשהחריגה אינה מטופלת. בשיעורים הבאים נראה איך לתפוס את החריגות האלה כדי שהתוכנית שלך תמשיך לפעול.

challenge icon

אתגר

מתחילים

קרא שורת קלט אחת, שם של ביטוי Ruby יחיד. הדפס את שם מחלקת החריגה ש-Ruby היה מעלה עבורו. השתמש במשפט case (אין צורך להעלות חריגה בפועל):

  • divide-by-zero → ZeroDivisionError
  • nil-method → NoMethodError
  • bad-integer → ArgumentError
  • wrong-type → TypeError
  • כל דבר אחר → Unknown

עבור הקלט nil-method, הפלט הוא NoMethodError.

נסו בעצמכם

kind = gets.chomp

# TODO: case kind ... הדפס את שם מחלקת החריגה המתאימה
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Ruby אונליין