הקפצת חריגה כשלא מוצאים את .wit

תגיות:

מוסיף שאלה בשרשור הזה כי היא רלוונטית - אני מנסה להקפיץ חריגה במקרה שלא קיימת תיקיית wit לגבות לתוכה. ניסיתי ליצור תנאי בלולאה שעולה במעלה התיקיות - “אם התיקייה שאתה נמצא בה היא :C, תקפיץ חריגה” אבל אני עדיין נתקע בלולאה אינסופית. למישהו יש רעיונות?

לייק 1

קודם כל - לא בהכרח ה’מחיצה’ שבה נמצאים היא C.
תנסה לדבאג בעזרת print-ים ולראות למה הלולאה שלך לא עוצרת

כבר עשיתי את זה, התוכנה כן מגיעה ל C, בודקת את תנאי החריגה, לא עוצרת, ומדפיסה את :C באופן אינסופי.image

היא לא מדפיסה במקרה:
C:\ או C:/?

סליחה \:C באופן אינסופי. ניסיתי גם לשים \:C בתנאי (עם סלש נוסף כי צריך אותו) ועדיין קרה אותו דבר.

תנסה לשנות את התנאי, כך שהוא יוריד את הסלאשים האפשריים ל-backup_dir
ובכל מקרה, אני לא בטוח שנהוג להעלות חריגה כתנאי עצירה מלולאה, זה שקול (אני חושב) ל-break

לא הבנתי. מאיפה הסלשים אמורים לרדת?

אני מוסיף סיבוך לרגע, אבל יכול להיות שאם תתייחס אליו זה גם יפתור לך את הבעיה.

אל תניחו שיש C: במחשב, או /. זה לא טוב כי זה מניח דברים שלא בהכרח קיימים בכל מחשב.
באופן כללי, הרבה חניכים עשו הרבה הנחות שגויות בתרגיל הזה:

  1. ש־/ מסמן הפרדה בין תיקיות בכל מערכות ההפעלה.
  2. ש־C: הוא התיקייה העליונה ביותר.
  3. שהם מקבלים נתיב יחסי ולא אבסולוטי.

נסו להימנע מזה, אני לא מקבל תרגילים עם הנחות. :slight_smile:
בחלק גדול מהפעמים ההכללה, ולא להיתלות בהנחות האלו, יכולים לחסוך לכם באגים.

בהצלחה

מבלי לכתוב את התשובה במפורש - הבנתי שאני צריך לבדוק אם הנתיב שלי “חזר הביתה”