דוגמה לטיפול בחריגות - 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)
כעת, הוסף חריגה נוספת עבור המקרה השני ועדכן את הקוד הנתון.
אתגר
בינוניעליך להוסיף קוד עבור המקרה השני.
נסו בעצמכם
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
4התאמה אישית ושיטות עבודה מומלצות
התאמה אישית של Tracebacks3חריגות מוגדרות על ידי המשתמש
סוגי חריגותהעלאת חריגהחריגה מוגדרת על ידי המשתמשתרגיל בטיפול בחריגות - 1דוגמה לטיפול בחריגות - 2דוגמה לטיפול בחריגות - 3תרגלו בעצמכם: קומפיילר Python אונליין