שימוש ב else בחריגות

תגיות:

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

try:
    code
except Error:
    code
else:
    code
    try:
        code
    except Error:
        code

או שאת הelse כותבים רק במידה שבהמשך לא צפוי חריגות?
לדוגמה,

try:
    code...
except Error:
    code...
code...
try:
    code...
except Error:
    code...
2 לייקים

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

לייק 1

אם אפשר לכתוב בדרך השניה, מה אם כן הצורך בשימוש בelse?

בצורה השניה שהציגומפה אין else . אולם בכל מקרה else כפי שהוסבר במחברת הוא כביכול לא מחייב כי מה שיגיע אליו יכול לרוץ גם בתוך run בהנחה ואין שגיאות.

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

לגבי 1 לעומת 2 - מה שאחרי ה except ירוץ בין אם היתה שגיאה או לא היתה שגיאה, ומה שבתוך ה else ירוץ רק אם לא היתה שגיאה ונראה לי שיכול להיות לזה שימוש משמעותי במקרים מסוימים (כמו תנאי if).

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

לייק 1