python基礎(chǔ)之錯誤和異常處理
更新時間:2021年10月24日 11:14:32 作者:qianqqqq_lu
這篇文章主要介紹了python錯誤和異常處理,實例分析了Python中返回一個返回值與多個返回值的方法,需要的朋友可以參考下
import Exception # except 在捕獲錯誤異常的時候 是要根據(jù)具體的錯誤類型來捕獲的 # 用一個塊 可以捕獲多個不同類型的異常 # EXception 可以捕獲所有異常 當(dāng)對出現(xiàn)的問題或者錯誤不確定的情況下 可以使用此種 print(dir(Exception)) try: # print(b) #捕獲邏輯的代碼 li=[1,2,3,4] print(li[10]) pass except NameError as msg: # 捕獲到的錯誤 才會在這里執(zhí)行 print(msg) pass except IndexError as msg: print(msg) print('初次接觸異常') print('HAHAHAHAHHAHAHAH')
try: # print(b) #捕獲邏輯的代碼 # li=[1,2,3,4] # print(li[10]) a=10/0 pass except NameError as msg: # 捕獲到的錯誤 才會在這里執(zhí)行 print(msg) pass except IndexError as msg: print(msg) pass except ZeroDivisionError as msg: print(msg) print('初次接觸異常') print('HAHAHAHAHHAHAHAH')
異常類型
try: print(b) #捕獲邏輯的代碼 # li=[1,2,3,4] # print(li[10]) # a=10/0 pass # except NameError as msg: # # 捕獲到的錯誤 才會在這里執(zhí)行 # print(msg) # pass # except IndexError as msg: # print(msg) # pass # except ZeroDivisionError as msg: # print(msg) # pass except Exception as msg: print(msg) pass print('初次接觸異常') print('HAHAHAHAHHAHAHAH')
def A(s): return 10/int(s) pass def B(s): return A(s)*2 def main(): try: B('0') pass except Exception as msg: print(msg) pass pass main() # 不需要在每個可能出錯的地方去捕獲,只要在合適的層次去捕獲錯誤就可以了 這樣的話 就大大減少我們寫try----exception的麻煩 # 異常的拋出機制 #如果在運行時發(fā)生異常 解釋器會查找相應(yīng)的異常捕獲類型 #如果在當(dāng)前函數(shù)里面沒有找到的話 它會將異常傳遞給上層的調(diào)用函數(shù) #如果在最外層 沒有找到的話 解釋器就會退出 程序down掉
class ToolongmyException(Exception): #自定義異常 def __init__(self,leng): ''' :param leng:長度 ''' self.len=leng pass def __str__(self): return '您輸入的數(shù)據(jù)長度是'+str(self.len)+'已經(jīng)超過長度了' pass def name_Test(): name=input('請輸入姓名:') if len(name)>5: raise ToolongmyException(len(name)) #拋出異常 else: print(name) pass pass name_Test()
class ToolongmyException(Exception): #自定義異常 def __init__(self,leng): ''' :param leng:長度 ''' self.len=leng pass def __str__(self): return '您輸入的數(shù)據(jù)長度是'+str(self.len)+'已經(jīng)超過長度了' pass def name_Test(): name=input('請輸入姓名:') try: if len(name)>5: raise ToolongmyException(len(name)) #拋出異常 else: print(name) pass except ToolongmyException as result: print(result) pass finally: print('執(zhí)行完畢了') pass name_Test()
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
python3?flask使用連接池連接數(shù)據(jù)庫實例
這篇文章主要為大家介紹了python3?flask使用連接池連接數(shù)據(jù)庫實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08深入學(xué)習(xí)Python中的上下文管理器與else塊
這篇文章主要給大家介紹了關(guān)于Python中上下文管理器與else塊的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08使用Python實現(xiàn)視頻轉(zhuǎn)音頻與音頻轉(zhuǎn)文本
這篇文章主要為大家詳細介紹了使用Python實現(xiàn)視頻轉(zhuǎn)音頻與音頻轉(zhuǎn)文本的相關(guān)知識,文中的示例代碼簡潔易懂,有需要的小伙伴可以參考一下2024-02-02python實現(xiàn)截取屏幕保存文件,刪除N天前截圖的例子
今天小編就為大家分享一篇python實現(xiàn)截取屏幕保存文件,刪除N天前截圖的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08關(guān)于Python網(wǎng)絡(luò)爬蟲requests庫的介紹
這篇文章主要介紹了關(guān)于Python網(wǎng)絡(luò)爬蟲requests庫,而很多時候這些數(shù)據(jù)存儲在網(wǎng)頁中,手動下載需要花費的時間太長,這時候我們就需要網(wǎng)絡(luò)爬蟲幫助我們自動爬取這些數(shù)據(jù),需要的朋友可以參考下2023-04-04