異常處理

class Dog(object):
    def __init__(self,name):
     self.name=name

    def eat(self,food):
        print("%s eat the milk and pick!%s eat %s"%(self.name,self.name,food))

d=Dog("ALEX")
# choise=input(">>:").strip()
# getattr(d,choise)
data={}
name=[1,2]

方法1

try:
    name[3]
    data['name']
except KeyError as e: #得到錯誤返回值給e
    print("沒有這個key",e)
except IndexError as e: #得到錯誤返回值給e
    print('列表錯誤')

##方法2

try:
    name[3]
    data['name']
except (KeyError,IndexError ) as e: #得到錯誤返回值給e
    print("沒有這個key",e)

##方法3(不建議用)
try:
    open("eor.txt")
except Exception as e: #基本能匹配所有的錯(不建議用)
    print(" 出錯了",e)

Exception運用方法4

try:
    #name[3]
    #data['name']
    pass
except (KeyError,IndexError ) as e: #得到錯誤返回值給e
    print("沒有這個key",e)
except Exception as e: #(通常匹配所有錯誤放在最後,匹配未知錯誤)
    print("未知錯誤",e)
else: #一切正常就執行
    print("一切正常!")
finally:#不管有沒有錯都執行
    print("不管有沒有錯都執行")

自定義異常

class hyException(Exception):
    def __init__(self,msg):
        self.message=msg
    def __str__(self): #返回對象的值(對象是self.message)
        return  self.message

try:
    raise hyException("我的異常") #raise主動觸發異常
except hyException as e:
    print(e)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章