Menu
CoddyTech

Ví dụ xử lý ngoại lệ 2

Bài học 14 trên 16 trong khóa học Xử lý ngoại lệ trong Python của Coddy.

Ví dụ 1:

Hãy xem một ví dụ về giao dịch ngân hàng. Chúng ta có nhiều ngoại lệ tùy chỉnh.

1) Giả sử tài khoản ngân hàng của người dùng phải có ít nhất 100$. Khi giao dịch, nếu số dư còn lại giảm xuống dưới 100$, một ngoại lệ sẽ được tạo ra.

2) Người dùng được thực hiện tối đa 3 lần thử. Nếu người dùng thử lần thứ tư, một ngoại lệ sẽ được tạo ra và tài khoản ngân hàng sẽ bị đóng băng.

Mình sẽ giải quyết trường hợp thứ nhất, trường hợp thứ hai là thử thách dành cho bạn.

#Bước-1: Tạo lớp Exception do bạn tự định nghĩa
class BalanceException(Exception):
	pass
#bước-2: phát sinh Exception khi thỏa điều kiện cụ thể
balance = 1000  
try:
	amt = float(input("Enter the amount to withdraw:"))
	#kiểm tra số tiền còn lại sau giao dịch
	temp = balance - amt
	if temp < 100:
		raise BalanceException("Insufficient balance")
except Exception as obj:
	print(obj)

Trong đoạn code trên, chúng ta tạo một ngoại lệ tùy chỉnh nếu số dư giảm xuống dưới 100$.

Chúng ta muốn thực hiện giao dịch nếu không có ngoại lệ nào xảy ra. Ta có thể viết khối lệnh else.

else:
	balance = balance - amt

Dù ngoại lệ có xảy ra hay không, chúng ta vẫn muốn in số dư còn lại. Ta có thể dùng khối lệnh finally để làm việc đó.

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

 

Giờ hãy thêm một ngoại lệ khác cho trường hợp thứ hai và cập nhật đoạn code đã cho.

challenge icon

Thử thách

Trung bình

Bạn cần thêm code cho trường hợp thứ hai.

Tự làm thử

balance = 10000   #Giả sử giá trị này được lấy từ cơ sở dữ liệu.
class BalanceException(Exception):
    pass

def transaction():
    global balance
    try:
        amt = float(input())
        #Kiểm tra số dư sau giao dịch.
        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)

Tất cả bài học trong Xử lý ngoại lệ trong Python

Tự luyện tập: Trình biên dịch Python online