您好,登錄后才能下訂單哦!
這篇“Python的Try和Except怎么使用”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Python的Try和Except怎么使用”文章吧。
try
塊允許您測(cè)試代碼塊以查找錯(cuò)誤。
except
塊允許您處理錯(cuò)誤。
finally
塊允許您執(zhí)行代碼,無(wú)論 try 和 except 塊的結(jié)果如何。
當(dāng)我們調(diào)用 Python 并發(fā)生錯(cuò)誤或異常時(shí),通常會(huì)停止并生成錯(cuò)誤消息。
可以使用 try 語(yǔ)句處理這些異常:
實(shí)例
try 塊將生成異常,因?yàn)?x 未定義:
try: print(x) except: print("An exception occurred")
運(yùn)行實(shí)例
由于 try 塊引發(fā)錯(cuò)誤,因此會(huì)執(zhí)行 except 塊。
如果沒(méi)有 try 塊,程序?qū)⒈罎⒉⒁l(fā)錯(cuò)誤:
實(shí)例
該語(yǔ)句將引發(fā)錯(cuò)誤,因?yàn)槲炊x x:
print(x)
您可以根據(jù)需要定義任意數(shù)量的 exception 塊,例如,假如您要為特殊類(lèi)型的錯(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í)例
如果沒(méi)有引發(fā)錯(cuò)誤,那么您可以使用 else 關(guān)鍵字來(lái)定義要執(zhí)行的代碼塊:
實(shí)例
在本例中,try 塊不會(huì)生成任何錯(cuò)誤:
try: print("Hello") except: print("Something went wrong") else: print("Nothing went wrong")
運(yùn)行實(shí)例
如果指定了 finally 塊,則無(wú)論 try 塊是否引發(fā)錯(cuò)誤,都會(huì)執(zhí)行 finally 塊。
實(shí)例
try: print(x) except: print("Something went wrong") finally: print("The 'try except' is finished")
運(yùn)行實(shí)例
這對(duì)于關(guān)閉對(duì)象并清理資源非常有用
實(shí)例
試圖打開(kāi)并寫(xiě)入不可寫(xiě)的文件:
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ù),而且不會(huì)打開(kāi)文件對(duì)象。
作為 Python 開(kāi)發(fā)者,您可以選擇在條件發(fā)生時(shí)拋出異常。
如需拋出(引發(fā))異常,請(qǐng)使用 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ā)異常的類(lèi)型、以及打印給用戶(hù)的文本。
實(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的Try和Except怎么使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。