שיעור 14: סוגי חריגות, else ו-finally
לא כל השגיאות זהות — לכל אחת יש סוג. int("x") זורק ValueError, וגישה למפתח חסר במילון זורקת KeyError. אפשר לתפוס סוג מסוים עם except ValueError, וכך לטפל רק בשגיאות שמצפים להן. בנוסף, else רץ כשהכול הצליח, ו-finally רץ תמיד — מושלם לסגירת דברים.
except ValueError זה כמו לומר 'תפוס רק כדורים אדומים' במקום 'תפוס הכול'. else הוא 'אם לא נפלת — תמשיך', ו-finally הוא 'בכל מקרה, תנקה אחריך'.
- סוגי חריגות
- לכל שגיאה יש סוג — ValueError, KeyError ועוד. except ValueError תופס רק את הסוג הזה.
- else (ב-try)
- בלוק שרץ רק אם בלוק ה-try הסתיים בלי חריגה.
- finally
- בלוק שרץ תמיד בסוף — בין אם הייתה חריגה ובין אם לא.