python異常處理try except過程解析
這篇文章主要介紹了python異常處理try except過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
某些時(shí)候我們能夠預(yù)判程序可能會(huì)出現(xiàn)何種類型的錯(cuò)誤,而此時(shí)我們希望程序繼續(xù)執(zhí)行而不是退出,此時(shí)就需要用到異常處理;下面是常用的幾種異常處理方法
#通過實(shí)例屬性 列表 字典構(gòu)造對(duì)應(yīng)的異常 class Human(object): def __init__(self, name, age, sex): self.name = name self.age = age def get_info(self): print("my name is %s,age is %s"%(self.name, self.age)) man1 = Human("李四", 22, "man") list1 = [1, 2, 3] dict1 = {"name":"張三", "age":12} #異常捕獲的語法 try: man1.get_info1() except AttributeError as e: #AttributeError為錯(cuò)誤類型,此種錯(cuò)誤的類型賦值給變量e;當(dāng)try與except之間的語句觸發(fā) # AttributeError錯(cuò)誤時(shí)程序不會(huì)異常退出而是執(zhí)行except AttributeError下面的內(nèi)容 print("this is a AttributeError:",e) finally: print("this is finally") try: man1.get_info() #list1[3] #dict1["sex"] except AttributeError as e: print("this is a AttributeError:",e) else: print("一切正常") #當(dāng)try與except之間內(nèi)容沒有觸發(fā)捕獲異常也沒有異常退出就會(huì)跳過except轉(zhuǎn)到執(zhí)行else下面的語句 finally: print("this is finally")#不論程序是否觸發(fā)異常,只要沒有退出都會(huì)執(zhí)行finally下面的內(nèi)容 try: list1[3] dict1["sex"] except (IndexError, KeyError) as e: #當(dāng)需要捕獲多個(gè)異常在一條except時(shí)候可以使用這種語法,try與except之間語句觸發(fā)任意一個(gè)異常捕獲后就跳到except下面的語句繼續(xù)執(zhí)行 print("this is a IndexError or KeyError:",e) try: list1[3] dict1["sex"] except IndexError as e:#當(dāng)需要分開捕獲多個(gè)異??梢允褂枚鄺lexcept語句,try與except之間語句觸發(fā)任意一個(gè)異常捕獲后就跳到對(duì)應(yīng)except執(zhí)行其下面的語句,其余except不在繼續(xù)執(zhí)行 print("this is a IndexError:",e) except KeyError as e: print("this is a KeyError:",e) try: man1.get_info1() except IndexError as e: print("this is a IndexError:",e) except Exception as e: print("this is a OtherError:",e)#可以使用except Exception來捕獲絕大部分異常而不必將錯(cuò)誤類型顯式全部寫出來 #自己定義異常 class Test_Exception(Exception): def __init__(self, message): self.message = message try: man1.get_info() raise Test_Exception("自定義錯(cuò)誤")#自己定義的錯(cuò)誤需要在try與except之間手工觸發(fā),錯(cuò)誤內(nèi)容為實(shí)例化傳入的參數(shù) except Test_Exception as e: print(e)
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python模塊學(xué)習(xí)之struct模塊詳解
這篇文章主要介紹了Python模塊學(xué)習(xí)之struct模塊詳解,該模塊作用是完成Python數(shù)值和C語言結(jié)構(gòu)體的Python字符串形式間的轉(zhuǎn)換,這可以用于處理存儲(chǔ)在文件中或從網(wǎng)絡(luò)連接中存儲(chǔ)的二進(jìn)制數(shù)據(jù),以及其他數(shù)據(jù)源,需要的朋友可以參考下2023-07-07scrapy中的spider傳參實(shí)現(xiàn)增量的方法
有時(shí)候需要根據(jù)項(xiàng)目的實(shí)際需求向spider傳遞參數(shù)來控制spider的運(yùn)行方式,本文主要介紹了scrapy中的spider傳參實(shí)現(xiàn)增量的方法,具有一定的參考價(jià)值,感興趣的可以了解一下2022-06-06Python實(shí)現(xiàn)向列表或數(shù)組添加元素
Python中的列表是一種動(dòng)態(tài)數(shù)組,可以存儲(chǔ)不同數(shù)據(jù)類型的元素,并提供多種方法進(jìn)行元素的添加和刪除,列表是Python中非常靈活和強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),可以通過索引訪問、修改和操作列表中的元素,列表的創(chuàng)建十分簡單,只需使用方括號(hào)括起元素,并用逗號(hào)分隔2024-09-09如何解決vscode下powershell終端進(jìn)入python虛擬環(huán)境venv問題
這篇文章主要介紹了如何解決vscode下powershell終端進(jìn)入python虛擬環(huán)境venv問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05一步步教你用Python實(shí)現(xiàn)2048小游戲
相信2048這個(gè)游戲?qū)Υ蠹襾碚f一定不陌生,下面這篇文章就主要給大家介紹了怎么用Python實(shí)現(xiàn)2048小游戲,文中通過注釋與示例代碼介紹的很詳細(xì),相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友們一起來看看吧。2017-01-01