Python常見異常處理總結(jié)
異常處理介紹
在實(shí)際的開發(fā)中,我們經(jīng)常遇到一些報(bào)錯(cuò)的例子,在pycharm的顯示頁面下,當(dāng)我們看到一串串的紅色的英文字母的時(shí)候,就是出現(xiàn)異常,這個(gè)時(shí)候如果英文好一點(diǎn)的童鞋,就可以按照它的提示,自己去解決。但是英文是很多的童鞋的軟肋,不過你也不要擔(dān)心,這個(gè)時(shí)候你就需要有一個(gè)翻譯神器,我使用的是網(wǎng)易有道詞典,不過有時(shí)候我們還是會(huì)遇到一些比較生僻的表達(dá),所以本期文章我們就一起來看看關(guān)于Python實(shí)際開發(fā)過程中的一些常見報(bào)錯(cuò)和解決方法。
語法報(bào)錯(cuò)
代碼拼寫錯(cuò)誤,一般在pycharm里面出現(xiàn)了錯(cuò)誤的拼寫,就會(huì)自動(dòng)顯示出來,在它的下面有紅色的波浪線,還有就是我們?cè)谑褂么a的拼寫的時(shí)候,有一個(gè)技巧,它會(huì)自動(dòng)補(bǔ)全,我們根據(jù)自己需要的代碼塊,按下“enter”鍵就可以實(shí)現(xiàn)快速拼接,這樣極大地提高了我們寫代碼的速度和效率。
還有就會(huì)一些縮進(jìn)錯(cuò)誤,沒有打冒號(hào),這個(gè)是初學(xué)者經(jīng)常遇到的一些問題,在之前的pycharm版本里面沒有提示錯(cuò)誤的這個(gè)功能,后面升級(jí)后就會(huì)有。在這里我還要提醒一個(gè),經(jīng)常有人會(huì)問,我好像沒有寫錯(cuò)啊,但是就是不能運(yùn)行,這個(gè)時(shí)候就要檢查自己輸入法是不是英文輸入法,除了用引號(hào)括起來的里面可以中文,其他的都不可以!
異常處理
出現(xiàn)異常的時(shí)候我們不知道自己的哪一部分寫錯(cuò)了,難道還要從全文查找嗎,不必了!我們直接點(diǎn)擊在報(bào)錯(cuò)上面的那個(gè)鏈接,就會(huì)自動(dòng)調(diào)到可能錯(cuò)誤的代碼處。
下面我看看一些常見的異常解釋:
解決方法
我們?cè)谧约簩懘a做項(xiàng)目的時(shí)候,我們發(fā)現(xiàn)我們一個(gè)完整的項(xiàng)目有很多的代碼塊,一旦我們第一行代碼報(bào)錯(cuò)了,我們后面的就不能運(yùn)行了,如果這樣的話,實(shí)際商業(yè)應(yīng)用的時(shí)候,是非常的不現(xiàn)實(shí)的,所以我們就有了異常處理的方法。
try except
try: <語句> #運(yùn)行別的代碼 except <名字>: <語句> #如果在try部份引發(fā)了'name'異常 except <名字>,<數(shù)據(jù)>: <語句> #如果引發(fā)了'name'異常,獲得附加的數(shù)據(jù) else: <語句> #如果沒有異常發(fā)生
如果try語句下面出現(xiàn)了異常,程序就會(huì)去運(yùn)行except下面的代碼去執(zhí)行相關(guān)的操作,或者是捕獲異常
try: a=str("王小王")+1233 print(a) except: print("出現(xiàn)異常語法錯(cuò)誤!")
這里本來就會(huì)報(bào)錯(cuò),但是我們這個(gè)語句,我們要知道int和str是不可以進(jìn)行運(yùn)算的。那么我們?cè)诓东@異常的時(shí)候,我們就會(huì)發(fā)現(xiàn)他是TypeError,對(duì)類型無效的操作!
try except else;
當(dāng)我們這個(gè)程序沒有錯(cuò)誤的時(shí)候,它會(huì)自動(dòng)執(zhí)行else語句,而且不會(huì)運(yùn)行except下面的補(bǔ)充代碼,這樣就有了一個(gè)較好的解決方法。
try except finally:
當(dāng)我們想要無論是否有異常出現(xiàn)我們都要去打印出來,這個(gè)時(shí)候我們就可以運(yùn)行這個(gè)語句了。這個(gè)語句可以在finally下面加上一些必要的操作,比如我們?cè)谶M(jìn)行文件操作處理的時(shí)候,必須要關(guān)閉文件,這個(gè)時(shí)候就可以使用它。
try: a=str("王小王")+1233 print(a) except TypeError: print("出現(xiàn)異常語法錯(cuò)誤!") finally: print("123")
拋出異常
使用raise拋出異常。
try: a=str("王小王")+1233 print(a) except TypeError: print("出現(xiàn)異常語法錯(cuò)誤!") finally: raise TypeError '''拋出異常''' '''raise raise[異常類型 [,arg [,traceback]]] 其中后面兩個(gè)參數(shù)都是可選參數(shù) '''
'''assert''' ''' 這個(gè)其實(shí)就是raise的簡化,當(dāng)assert后面的語句為假的時(shí)候,這個(gè)時(shí)候就會(huì)異常處理,為真就會(huì)有正確的運(yùn)行 ''' def test(): for i in range(3): try: assert i<2 except AssertionError: print("拋出一個(gè)異常!") print(i) print("執(zhí)行完畢!") test()
自定義異常
'''自定義異常 在定義異常類的時(shí)候,我們需要繼承Exception這個(gè)類,然后自己再去定義一些東西 ''' class RangeError(Exception): def __init__(self,value): self.value=value def __str__(self):#重載方法__str__() return self.value raise RangeError("Rang錯(cuò)誤?。。。。?)
其他內(nèi)置函數(shù)
- testmod()
- testfile()
總結(jié)
到此這篇關(guān)于Python常見異常處理總結(jié)的文章就介紹到這了,更多相關(guān)Python異常處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
django Layui界面點(diǎn)擊彈出對(duì)話框并請(qǐng)求邏輯生成分頁的動(dòng)態(tài)表格實(shí)例
這篇文章主要介紹了django Layui界面點(diǎn)擊彈出對(duì)話框并請(qǐng)求邏輯生成分頁的動(dòng)態(tài)表格實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05利用python數(shù)據(jù)分析處理進(jìn)行炒股實(shí)戰(zhàn)行情
這篇文章主要介紹了利用python數(shù)據(jù)分析進(jìn)行炒股實(shí)戰(zhàn)行情,本文主要介紹三部分:數(shù)據(jù)采集,數(shù)據(jù)預(yù)處理,利用SVM算法進(jìn)行建模,本文僅供參考借鑒2021-08-08Python 爬蟲實(shí)現(xiàn)增加播客訪問量的方法實(shí)現(xiàn)
這篇文章主要介紹了Python 爬蟲實(shí)現(xiàn)增加播客訪問量的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Python數(shù)據(jù)分析之雙色球中藍(lán)紅球分析統(tǒng)計(jì)示例
這篇文章主要介紹了Python數(shù)據(jù)分析之雙色球中藍(lán)紅球分析統(tǒng)計(jì),結(jié)合實(shí)例形式較為詳細(xì)的分析了Python針對(duì)雙色球藍(lán)紅球中獎(jiǎng)數(shù)據(jù)分析的相關(guān)操作技巧,需要的朋友可以參考下2018-02-02