Menu
Coddy logo textTech

דוגמה לטיפול בחריגות - 2

שיעור 14 מתוך 16 בקורס טיפול בחריגות ב-Python של Coddy.

דוגמה 1:

ניקח דוגמה של עסקאות בנקאיות. יש לנו כמה חריגות מותאמות אישית.

1) נניח שחשבון הבנק של המשתמש חייב להכיל לפחות 100$. במהלך עסקה, אם היתרה שנותרה יורדת מתחת ל-100$, יש ליצור חריגה.

2) המשתמש יכול לבצע לכל היותר 3 ניסיונות. אם המשתמש ינסה לבצע ניסיון רביעי, יש ליצור חריגה וחשבון הבנק צריך להינעל.

אני אפתור את המקרה הראשון, המקרה השני הוא האתגר שלך.

#step-1: צרו מחלקת Exception המוגדרת על ידי המשתמש
class BalanceException(Exception):
	pass
#שלב-2: העלה Exception עבור תנאי מסוים
balance = 1000  
try:
	amt = float(input("Enter the amount to withdraw:"))
	#בדוק את הסכום שנותר לאחר העסקה
	temp = balance - amt
	if temp < 100:
		raise BalanceException("Insufficient balance")
except Exception as obj:
	print(obj)

בקטע הקוד שלמעלה, העלינו חריגה מותאמת אישית אם היתרה יורדת מתחת ל-100$.

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

else:
	balance = balance - amt

בין אם מתרחשת חריגה ובין אם לא, אנחנו רוצים להציג את היתרה שנותרה. נוכל להשתמש בבלוק finally לשם כך.

finally:
	print("Remaining balance is:",balance)

 

כעת, הוסף חריגה נוספת עבור המקרה השני ועדכן את הקוד הנתון.

challenge icon

אתגר

בינוני

עליך להוסיף קוד עבור המקרה השני.

נסו בעצמכם

balance = 10000   #דמיינו שהוא נשלף ממסד נתונים.
class BalanceException(Exception):
    pass

def transaction():
    global balance
    try:
        amt = float(input())
        #בדקו את הסכום שנותר לאחר העסקה
        temp = balance - amt
        if temp < 100:
            raise BalanceException("Insufficient balance")
    except Exception as obj:
        print(obj)
    else:
        balance = balance - amt
    finally:
        print("Remaining balance is:",balance)

כל השיעורים ביחידה טיפול בחריגות ב-Python

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