class InvalidWithdrawal(Exception):
def __init__(self,balance,amount):
super().__init__("account doesn't have ${}".format(amount))
self.amount = amount
self.balance = balance
def overage(self):
return self.amount - self.balance
try:
raise InvalidWithdrawal(25,50)
except InvalidWithdrawal as e:
print(e.overage())
#======================================================================================
def divide_with_exception(number,divisor):
try:
print("%s / %s = %s" %(number,divisor,number/divisor))
except ZeroDivisionError:
print("除零!")
#==========================================================================
class Inventory:
def lock(self,item_type):
pass
def unlock(self,item_type):
pass
def purchase(self,item_type):
pass
item_type = "widget"
inv=Inventory()
inv.lock(item_type)
try:
num_left = inv.purchase(item_type)
except InvalidItemType:
print("sorry,we don't sell %s" %item_type)
except OutOfStock:
print("sorry,that item is out of stock")
else:
print("Ther are {} {}s left".format(num_left,item_type))
finally:
inv.unlock(item_type)