python基礎(chǔ)之錯(cuò)誤和異常處理
更新時(shí)間:2021年10月24日 11:14:32 作者:qianqqqq_lu
這篇文章主要介紹了python錯(cuò)誤和異常處理,實(shí)例分析了Python中返回一個(gè)返回值與多個(gè)返回值的方法,需要的朋友可以參考下
import Exception # except 在捕獲錯(cuò)誤異常的時(shí)候 是要根據(jù)具體的錯(cuò)誤類型來捕獲的 # 用一個(gè)塊 可以捕獲多個(gè)不同類型的異常 # EXception 可以捕獲所有異常 當(dāng)對出現(xiàn)的問題或者錯(cuò)誤不確定的情況下 可以使用此種 print(dir(Exception)) try: # print(b) #捕獲邏輯的代碼 li=[1,2,3,4] print(li[10]) pass except NameError as msg: # 捕獲到的錯(cuò)誤 才會(huì)在這里執(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: # 捕獲到的錯(cuò)誤 才會(huì)在這里執(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: # # 捕獲到的錯(cuò)誤 才會(huì)在這里執(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() # 不需要在每個(gè)可能出錯(cuò)的地方去捕獲,只要在合適的層次去捕獲錯(cuò)誤就可以了 這樣的話 就大大減少我們寫try----exception的麻煩 # 異常的拋出機(jī)制 #如果在運(yùn)行時(shí)發(fā)生異常 解釋器會(huì)查找相應(yīng)的異常捕獲類型 #如果在當(dāng)前函數(shù)里面沒有找到的話 它會(huì)將異常傳遞給上層的調(diào)用函數(shù) #如果在最外層 沒有找到的話 解釋器就會(huì)退出 程序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)文章
Python+Pygame實(shí)現(xiàn)趣味足球游戲
這篇文章主要為大家分享了一個(gè)基于Python和Pygame實(shí)現(xiàn)的一個(gè)趣味足球游戲,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下2022-05-05python3?flask使用連接池連接數(shù)據(jù)庫實(shí)例
這篇文章主要為大家介紹了python3?flask使用連接池連接數(shù)據(jù)庫實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08深入學(xué)習(xí)Python中的上下文管理器與else塊
這篇文章主要給大家介紹了關(guān)于Python中上下文管理器與else塊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08使用Python實(shí)現(xiàn)視頻轉(zhuǎn)音頻與音頻轉(zhuǎn)文本
這篇文章主要為大家詳細(xì)介紹了使用Python實(shí)現(xiàn)視頻轉(zhuǎn)音頻與音頻轉(zhuǎn)文本的相關(guān)知識,文中的示例代碼簡潔易懂,有需要的小伙伴可以參考一下2024-02-02python實(shí)現(xiàn)截取屏幕保存文件,刪除N天前截圖的例子
今天小編就為大家分享一篇python實(shí)現(xiàn)截取屏幕保存文件,刪除N天前截圖的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08關(guān)于Python網(wǎng)絡(luò)爬蟲requests庫的介紹
這篇文章主要介紹了關(guān)于Python網(wǎng)絡(luò)爬蟲requests庫,而很多時(shí)候這些數(shù)據(jù)存儲(chǔ)在網(wǎng)頁中,手動(dòng)下載需要花費(fèi)的時(shí)間太長,這時(shí)候我們就需要網(wǎng)絡(luò)爬蟲幫助我們自動(dòng)爬取這些數(shù)據(jù),需要的朋友可以參考下2023-04-04