Python try except異常捕獲機(jī)制原理解析
當(dāng)你執(zhí)行大型程序的時(shí)候,突然出現(xiàn)exception,會(huì)讓程序直接停止,這種對(duì)服務(wù)器自動(dòng)程序很不友好,而python有著較好的異常捕獲機(jī)制,不會(huì)立刻終止程序。
這個(gè)機(jī)制就是try-except。
1. 發(fā)生異常時(shí)可配置備用程序
aa = [1,2,4,5,7,0,2]for ii in aa: try: h = 2/ii print(h) except: #發(fā)生異常時(shí)備用 h = 2/(ii+1) print(h)
2. 單個(gè)異常捕獲
dict_ = {}try: print(dict_[’test’]) print(’ --- testing... --- ’)except KeyError as e: print(’--- the error is ---:’, e) #單個(gè)異常print(’ ---finished!!--- ’)
3. 多個(gè)異常捕獲,循環(huán)中
num = [9,7,0,1,4,’16’]for x in num: try: print (1/x) except ZeroDivisionError: print(’error:0做除數(shù)!’) except TypeError: # 當(dāng)報(bào)錯(cuò)信息為T(mén)ypeError,執(zhí)行下面的語(yǔ)句。 print(’error:數(shù)值類(lèi)型錯(cuò)誤!’)print(’ ---finished!!--- ’)
4. 通用異常:Exception,當(dāng)你不知道異常的種類(lèi)或者多少異常的時(shí)候,可以使用通用異常捕獲,同時(shí)通用異常可以與特定異常混用。
num = [9,7,0,1,4,’16’]for x in num: try: print (1/x) except ZeroDivisionError: print(’error:0做除數(shù)!’) #特定異常和Exception混合使用 except Exception as e: print(’the Exception is:’,e)print(’ ---finished!!--- ’)
5. else語(yǔ)句:在被檢測(cè)的代碼塊沒(méi)有發(fā)生異常時(shí)執(zhí)行
dict_ = {’test’:’這個(gè)地方是哪里?’}try: print(dict_[’test’]) print(’ --- testing... --- ’)except KeyError as e: print(’--- the error is ---:’, e) #單個(gè)異常else: print(’沒(méi)有發(fā)生異常!’)print(’ ---finished!!--- ’)
6. finally語(yǔ)句:不管有沒(méi)有發(fā)生異常都會(huì)執(zhí)行
dict_ = {’test’:’這個(gè)地方是哪里?’}try: print(dict_[’test’]) print(’ --- testing... --- ’)except KeyError as e: print(’--- the error is ---:’, e) #單個(gè)異常else: print(’沒(méi)有發(fā)生異常!’)finally: print(’總可以被執(zhí)行的語(yǔ)句。。。’)print(’ ---finished!!--- ’)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向2. Python importlib動(dòng)態(tài)導(dǎo)入模塊實(shí)現(xiàn)代碼3. android studio 打包自動(dòng)生成版本號(hào)與日期,apk輸入路徑詳解4. 利用promise及參數(shù)解構(gòu)封裝ajax請(qǐng)求的方法5. 淺談python出錯(cuò)時(shí)traceback的解讀6. 在Android中使用WebSocket實(shí)現(xiàn)消息通信的方法詳解7. .NET中l(wèi)ambda表達(dá)式合并問(wèn)題及解決方法8. Nginx+php配置文件及原理解析9. python matplotlib:plt.scatter() 大小和顏色參數(shù)詳解10. JSP數(shù)據(jù)交互實(shí)現(xiàn)過(guò)程解析
