ארכיון יומי: 6 יוני, 2011

זריקת חריגה (חלק שלישי)

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

ברובי ישנם 2 מתודות המגיעות ממודל Kernel אשר מאפשרות לזרוק חריגות. 2 המתודות זהות לחלוטין, למעט השם שלהן:

  • raise
  • fail

אתם בטח רוצים לדעת מתי להשתמש באיזו מתודה, ובכן זה תלוי בכם. אישית אני חושב ש fail צריך להיות בשימוש כאשר אנחנו רוצים לדווח על משהו שנכשל, בעוד ש raise כאשר אנחנו רוצים להרים הלאה את החריגה, למשל לא הצלחנו לטפל בה כראוי, או שתפסנו אותה, אבל אנחנו לא באמת יודעים לטפל בה.

המתודות יכולות לקבל עד 3 פרמטרים (רק הפרמטר הראשון הוא חובה):

  1. מחלקה של החריגה שאותה רוצים "לזרוק"
  2. מחרוזת שרוצים להציג
  3. את ה stack שרוצים להציג, בשביל להראות מאיפה התרחשה החריגה

התחביר המינימאלי שנראה הוא כזה:

raise ArgumentError

ותחביר בשימוש מלא יראה בצורה הבאה: להמשיך לקרוא