python 異常處理之自定義一個自己的異常
# -*- coding:utf-8 -*-
#異常處理:必須要有try和一個except(可以有多個)
# else(如果except語句都沒有執行,才會執行) 可選**
# finally(不管結果怎麼樣最後都會執行) 可選
# 結構:
try:
number = int(input('請輸入數字:'))
except ValueError as er:
print('輸入值異常',er)
except NameError as er:
print('輸入異常',er)
except:
print('未知錯誤')
else:
print('沒有錯誤!')
finally:
print('end')
#----------^-^我是分割線^-^----------------
class MyExcept1(Exception): ##自定義一個異常,繼承了Exception
def __init__(self,value):
self.value = value
def __str__(self): ##傳回列印資訊
return self.value
class MyExcept2(Exception): ##自定義一個異常,繼承了Exception
def __init__(self,value):
self.value = value
def __str__(self):
return self.value
#建立一個Bank類
class Bank(object):
def __init__(self):
self.blance = 500 ##金額大小
def withDrawal(self,number): ##定義判斷方法
if self.blance < number: ##如果要取的錢大于你的金額
raise MyExcept1('你沒那麼多錢!!') ###抛出異常,并給出提示資訊
elif number < 0: ##如果要取的錢為負數
raise MyExcept2('取款不能為負數 ! !') ###抛出異常,并給出提示資訊
self.blance -= number ###正常取錢的情況
return self.blance ###傳回剩下的金額
# eg:取錢執行個體
my = Bank()
num = int(input('請輸入取款金額:'))
try:
money=my.withDrawal(num)
print('你還剩餘:',money)
except MyExcept1 as i:
print(i)
except MyExcept2 as u:
print(u)