Python入門教程(三十一)Python的Try和Except
可以使用try語句處理這些異常,需要的朋友可以參考下
try
塊允許您測試代碼塊以查找錯(cuò)誤。
except
塊允許您處理錯(cuò)誤。
finally
塊允許您執(zhí)行代碼,無論 try 和 except 塊的結(jié)果如何。
異常處理
當(dāng)我們調(diào)用 Python 并發(fā)生錯(cuò)誤或異常時(shí),通常會停止并生成錯(cuò)誤消息。
可以使用 try 語句處理這些異常:
實(shí)例
try 塊將生成異常,因?yàn)?x 未定義:
try: print(x) except: print("An exception occurred")
運(yùn)行實(shí)例
由于 try 塊引發(fā)錯(cuò)誤,因此會執(zhí)行 except 塊。
如果沒有 try 塊,程序?qū)⒈罎⒉⒁l(fā)錯(cuò)誤:
實(shí)例
該語句將引發(fā)錯(cuò)誤,因?yàn)槲炊x x:
print(x)
多個(gè)異常
您可以根據(jù)需要定義任意數(shù)量的 exception 塊,例如,假如您要為特殊類型的錯(cuò)誤執(zhí)行特殊代碼塊:
實(shí)例
如果 try 塊引發(fā) NameError,則打印一條消息,如果是其他錯(cuò)誤則打印另一條消息:
try: print(x) except NameError: print("Variable x is not defined") except: print("Something else went wrong")
運(yùn)行實(shí)例
Else
如果沒有引發(fā)錯(cuò)誤,那么您可以使用 else 關(guān)鍵字來定義要執(zhí)行的代碼塊:
實(shí)例
在本例中,try 塊不會生成任何錯(cuò)誤:
try: print("Hello") except: print("Something went wrong") else: print("Nothing went wrong")
運(yùn)行實(shí)例
Finally
如果指定了 finally 塊,則無論 try 塊是否引發(fā)錯(cuò)誤,都會執(zhí)行 finally 塊。
實(shí)例
try: print(x) except: print("Something went wrong") finally: print("The 'try except' is finished")
運(yùn)行實(shí)例
這對于關(guān)閉對象并清理資源非常有用
實(shí)例
試圖打開并寫入不可寫的文件:
try: f = open("demofile.txt") f.write("Lorum Ipsum") except: print("Something went wrong when writing to the file") finally: f.close()
運(yùn)行實(shí)例
程序可以繼續(xù),而且不會打開文件對象。
引發(fā)異常
作為 Python 開發(fā)者,您可以選擇在條件發(fā)生時(shí)拋出異常。
如需拋出(引發(fā))異常,請使用 raise 關(guān)鍵詞。
實(shí)例
假如 x 小于 0,則引發(fā)異常并終止程序:
x = -1 if x < 0: raise Exception("Sorry, no numbers below zero")
運(yùn)行實(shí)例
raise 關(guān)鍵字用于引發(fā)異常。
你能夠定義所引發(fā)異常的類型、以及打印給用戶的文本。
實(shí)例
如果 x 不是整數(shù),則引發(fā) TypeError:
x = "hello" if not type(x) is int: raise TypeError("Only integers are allowed")
運(yùn)行實(shí)例
到此這篇關(guān)于Python入門教程(三十一)Python的Try和Except的文章就介紹到這了,更多相關(guān)Python的Try和Except內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python如何通過百度翻譯API實(shí)現(xiàn)翻譯功能
這篇文章主要介紹了Python如何通過百度翻譯API實(shí)現(xiàn)翻譯功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04深度學(xué)習(xí)入門之Pytorch 數(shù)據(jù)增強(qiáng)的實(shí)現(xiàn)
這篇文章主要介紹了深度學(xué)習(xí)入門之Pytorch 數(shù)據(jù)增強(qiáng)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02Python實(shí)現(xiàn)隨機(jī)從圖像中獲取多個(gè)patch
經(jīng)常有一些圖像任務(wù)需要從一張大圖中截取固定大小的patch來進(jìn)行訓(xùn)練。本文就來和大家聊聊如何用Python實(shí)現(xiàn)隨機(jī)從圖像中獲取多個(gè)patch,感興趣的可以了解一下2022-08-08Python讀入mnist二進(jìn)制圖像文件并顯示實(shí)例
這篇文章主要介紹了Python讀入mnist二進(jìn)制圖像文件并顯示實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python 繼承,重寫,super()調(diào)用父類方法操作示例
這篇文章主要介紹了Python 繼承,重寫,super()調(diào)用父類方法,結(jié)合完整實(shí)例形式詳細(xì)分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中子類繼承與重寫父類方法的相關(guān)操作技巧,需要的朋友可以參考下2019-09-09- 缺失值可能是數(shù)據(jù)科學(xué)中最不受歡迎的值,然而,它們總是在身邊。忽略缺失值也是不合理的,因此我們需要找到有效且適當(dāng)?shù)靥幚硭鼈兊姆椒?。本文總結(jié)了四個(gè)Python查詢?nèi)笔е档姆椒?,需要的可以參考一?/div> 2022-05-05
Python values()與itervalues()的用法詳解
今天小編就為大家分享一篇Python values()與itervalues()的用法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11最新評論