טיפול במספר חריגות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Python של Coddy. שיעור 65 מתוך 78.
ב-Python, אפשר לטפל בסוגים שונים של חריגות בבלוקי except נפרדים. כך אפשר להגיב באופן שונה בהתאם לשגיאה הספציפית שמתרחשת.
התחילו במבנה בסיסי של try-except:
try:
# קוד שעלול להעלות חריגות
pass
except Exception as e:
# טפל בכל חריגה
passכדי לטפל בכמה חריגות, הוסיפו בלוקי except ספציפיים:
try:
number = int(input("Enter a number: "))
result = 10 / number
print(result)
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")אפשר גם לתפוס כמה סוגי חריגות בבלוק except יחיד:
try:
# קוד כלשהו
pass
except (ValueError, TypeError):
print("Invalid input type!")לסדר של בלוקי except יש חשיבות — תמיד יש למקם חריגות ספציפיות יותר לפני חריגות כלליות יותר.
אתגר
קלצרו פונקציה בשם process_data ש:
- מקבלת קלט מסוג מחרוזת שמייצג נתונים אפשריים
- מנסה להמיר אותו למספר שלם, ואז מחשבת 100 חלקי המספר השלם הזה
- מחזירה את התוצאה
- מטפלת בלפחות 3 חריגות אפשריות:
ValueErrorאם אי אפשר להמיר את הקלט למספר שלם (הדפיסו "Input must be a number!")ZeroDivisionErrorאם הקלט הוא 0 (הדפיסו "Cannot divide by zero!")- כל חריגה אחרת באמצעות מטפל כללי (הדפיסו "An unexpected error occurred!")
נסו בעצמכם
def process_data(input_string):
try:
# נסה להמיר את מחרוזת הקלט למספר שלם
# חשב את 100 חלקי ערך הקלט
# החזר את התוצאה
except ValueError:
# טפל במקרה שבו אי אפשר להמיר את הקלט למספר שלם
except ZeroDivisionError:
# טפל במקרה שבו הקלט הוא אפס
except:
# טפל בכל חריגה בלתי צפויה אחרת
return Noneהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4יישום ספר אנשי קשר
הצגת התפריטהוספת איש קשר7קבוצות חלק 2
פעולות מתמטיות חלק 1פעולות מתמטיות חלק 2סיכום – חיפוש אוצרתת־קבוצות וקבוצות־עלמעבר על קבוצותסיכום – מעקב אחר טורניר8מנהל רישומי תלמידים
סקירת הפרויקטהוספת תלמיד3מילונים חלק 2
מתודות של מילוניםמילונים מקונניםבדיקת מפתחותמעבר בלולאה על מילוניםסיכום – מונה תדירויות12טיפול בסיסי בשגיאות
מהו טיפול בשגיאות?בלוק try ו־exceptטיפול במספר חריגותסיכום – שגיאות בעגלת הקניותתרגלו בעצמכם: קומפיילר Python אונליין