תכנות — שיעור 21 19/February/2009    

טִפול בכשלון

כאשר מפעילים את התכנית min.py הדומה לתכנית max.py שהצגנו משעור קודם ללא מספרים (פרמטרים) מקבלים את הכשלון הבא:

הכשלון נובע מכך שפייתון מנסה לפנות למִלה השנייה (sys.argv[1]) ברשימה sys.argv ובמקרה הזה התכנית הורצה ללא מספרים ואז הרשימה מכילה רק את שם התכנית (sys.argv[0]) ולכן פייתון נכשל ומתאונן כי אין מילה שנייה. כדי להמנע מההודעה "המפחידה" ולסייע למשתמש ה"מבוהל", רצוי לבדוק לפני שניגשים למשתנה שאינו קיים ולטפל במקרה זה באופן מתאים.

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


תרגילים

בכל תרגיל של כתיבת תכנית פייתון, שלח:
  1. קרא את הסיכום שלמעלה. אם יש צורך, חזור על סיכומי שעור קודמים .
  2. כתוב גירסא חדשה של min.py שעובדת כמו בגירסא קודמת אך במקרה שלא מסופקים לה מספרים, היא נותנת הודעת עזרה מרגיעה ויוצאת עם כשלון בצורה מסודרת כפי שמתואר למעלה. הרץ את התכנית בכמה מקרים: ללא מספרים, עם מספר אחד ועם יותר.
  3. באופן דומה, שפר את התכנית minmax.py (משעור קודם) .
  4. תרגיל רשות: — תרגיל הרשות משעור קודם. רמז: אפשר להתחיל עם minmax.py ולחשֹב על חִבור וחִסור.

חזרה לעמוד האם