异常处理示例 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)
现在,为第二种情况添加另一个异常,并更新给出的代码。
挑战
中等你需要为第 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 在线编译器