Menu
CoddyTech

异常处理示例 2

Coddy Python 异常处理 课程的第 14 课,共 16 课。

示例 1:

我们以银行交易为例。这里有多个自定义异常。

1) 假设用户的银行账户中必须至少有 100$。交易后,如果余额低于 100$,就应该触发异常。

2) 用户最多可以尝试 3 次。如果用户尝试第 4 次,就应该触发异常,并冻结银行账户。

我来解决第 1 个问题,第 2 个问题是你的挑战。

#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

挑战

中等

你需要为第 2 种情况添加代码。

亲手试试

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 在线编译器