Menu
Coddy logo textTech

טיפול במספר חריגות

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-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 יש חשיבות — תמיד יש למקם חריגות ספציפיות יותר לפני חריגות כלליות יותר.

challenge icon

אתגר

קל

צרו פונקציה בשם process_data ש:

  1. מקבלת קלט מסוג מחרוזת שמייצג נתונים אפשריים
  2. מנסה להמיר אותו למספר שלם, ואז מחשבת 100 חלקי המספר השלם הזה
  3. מחזירה את התוצאה
  4. מטפלת בלפחות 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
quiz iconבחנו את עצמכם

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

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

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