Python異常處理操作實(shí)例詳解
本文實(shí)例講述了Python異常處理操作。分享給大家供大家參考,具體如下:
一、異常處理的引入
>>>whileTrue: try: x = int(input("Please enter a number: ")) break exceptValueError: print("Oops! That was no valid number. Try again ") Please enter a number: y Oops!That was no valid number.Try again Please enter a number:1.3 Oops!That was no valid number.Try again Please enter a number:5
二、try語(yǔ)句工作方式
1、執(zhí)行try子句(在關(guān)鍵字try和關(guān)鍵字except之間的語(yǔ)句)
2、如果沒(méi)有異常發(fā)生,忽略except子句,try子句執(zhí)行后結(jié)束。
3、如果在執(zhí)行try子句的過(guò)程中發(fā)生了異常,那么try子句余下的部分將被忽略。如果異常的類型和 except 之后的名稱相符,那么對(duì)應(yīng)的except子句將被執(zhí)行。最后執(zhí)行 try 語(yǔ)句之后的代碼。
4、如果一個(gè)異常沒(méi)有與任何的except匹配,那么這個(gè)異常將會(huì)傳遞給上層的try中。
5、一個(gè) try 語(yǔ)句可能包含多個(gè)except子句,分別來(lái)處理不同的特定的異常。最多只有一個(gè)分支會(huì)被執(zhí)行。
6、處理程序?qū)⒅会槍?duì)對(duì)應(yīng)的try子句中的異常進(jìn)行處理。
7、一個(gè)except子句可以同時(shí)處理多個(gè)異常,這些異常將被放在一個(gè)括號(hào)里成為一個(gè)元組,例如:
except (RuntimeError, TypeError, NameError): pass
8、最后一個(gè)except子句可以忽略異常的名稱,它將被當(dāng)作通配符使用。你可以使用這種方法打印一個(gè)錯(cuò)誤信息,然后再次把異常拋出。
>>>import os >>>try: f = open('myfile.txt') s = f.readline() i = int(s.strip()) exceptOSErroras err: print("OS error: {0}".format(err)) exceptValueError: print("Could not convert data to an integer.") except: print("Unexpected error:", sys.exc_info()[0]) raise OS error:[Errno2]No such file or directory:'myfile.txt'
三、else子句
try except 語(yǔ)句還有一個(gè)可選的else子句,如果使用這個(gè)子句,那么必須放在所有的except子句之后。這個(gè)子句將在try子句沒(méi)有發(fā)生任何異常的時(shí)候執(zhí)行。
>>>try: f = open('a.txt','r') exceptIOError: print('cannot open') except: print('other ERR') else: print('file close') f.close() cannot open
使用 else 子句比把所有的語(yǔ)句都放在 try 子句里面要好,這樣可以避免一些意想不到的、而except又沒(méi)有捕獲的異常。
四、異常處理try中函數(shù)
異常處理并不僅僅處理那些直接發(fā)生在try子句中的異常,而且還能處理子句中調(diào)用的函數(shù)(甚至間接調(diào)用的函數(shù))里拋出的異常。
>>>def this_fails(): x =1/0 >>>try: this_fails() exceptZeroDivisionErroras err: print('Handling run-time error:', err) Handling run-time error: division by zero
更多Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python入門與進(jìn)階經(jīng)典教程》、《Python字符串操作技巧匯總》、《Python列表(list)操作技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python中Wxpython實(shí)現(xiàn)剪切、復(fù)制、粘貼和文件打開(kāi)示例
我們?cè)赑ython開(kāi)發(fā)中中,可以使用WxPython庫(kù)來(lái)創(chuàng)建GUI應(yīng)用程序,并實(shí)現(xiàn)剪切、復(fù)制、粘貼和文件打開(kāi)功能,本文就來(lái)介紹一下,感興趣的可以了解一下2024-03-03Pandas之Fillna填充缺失數(shù)據(jù)的方法
這篇文章主要介紹了Pandas之Fillna填充缺失數(shù)據(jù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06使用urllib庫(kù)的urlretrieve()方法下載網(wǎng)絡(luò)文件到本地的方法
今天小編就為大家分享一篇使用urllib庫(kù)的urlretrieve()方法下載網(wǎng)絡(luò)文件到本地的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Python打包代碼成exe可執(zhí)行文件的方法總結(jié)
將Python代碼打包成可執(zhí)行文件(.exe)是一種非常有效的解決方案,能夠使用戶無(wú)需安裝Python環(huán)境即可直接運(yùn)行程序,本文整理了一些常見(jiàn)的方法,希望對(duì)大家有所幫助2024-10-10python批量實(shí)現(xiàn)Word文件轉(zhuǎn)換為PDF文件
這篇文章主要為大家詳細(xì)介紹了python批量實(shí)現(xiàn)Word文件轉(zhuǎn)換為PDF文件的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03Python實(shí)現(xiàn)遍歷包含大量文件的文件夾
在處理大模型的訓(xùn)練數(shù)據(jù)時(shí),經(jīng)常需要遍歷大型文件夾,其中,可能包括數(shù)千萬(wàn)或數(shù)億個(gè)文件,所以本文為大家整理了Python遍歷包含大量文件的文件夾的方法,希望對(duì)大家有所幫助2023-04-04Python爬蟲(chóng)與防反爬蟲(chóng)策略從入門到實(shí)戰(zhàn)
本文將從基礎(chǔ)的爬蟲(chóng)原理和庫(kù)介紹開(kāi)始,逐步深入,通過(guò)實(shí)際示例代碼,帶領(lǐng)讀者學(xué)習(xí)Python爬蟲(chóng)的使用和技巧,掌握從簡(jiǎn)單到復(fù)雜的爬蟲(chóng)實(shí)現(xiàn)2024-01-01