ETH官方钱包

切換
舊版
前往
大廳
主題

Python筆記Day17-錯誤處理

萬念俱灰的人最強(qiáng) | 2019-08-26 15:14:04 | 巴幣 1002 | 人氣 95

如果說我們對語法很熟悉,寫出來的程式碼基本上都是正確的,但是實際上我們也不能保證說我們的程式在執(zhí)行上會不會發(fā)生錯誤,並且終止程式執(zhí)行。

例如:
當(dāng)有要求使用者輸入東西的時候,我都會很故意去輸入超長串的字串給他,看看會不會溢位,又亦或者只能輸入數(shù)字的輸入框輸入其他符號會不會怎麼樣。

有經(jīng)驗的當(dāng)然就會對著些小細(xì)節(jié)進(jìn)行處理。
而今天我們要講的就是這一部分的處理,萬一執(zhí)行發(fā)生錯誤,我們該怎麼處理。

簡單來說就是使用
try:
這裡頭的內(nèi)容放我們要執(zhí)行的程式,假設(shè)try-catch出現(xiàn)問題會往下執(zhí)行except
,沒有的話就直接跳過except的部分。

except name as error:
如果知道會發(fā)生哪類的錯誤,就直接在name的部分打上錯誤名稱,
再打上處理方式之類的。
比方說name是ZeroDivisionError的話,
那我們最好提醒使用者"數(shù)字是不能除以0的,請再輸入:"

else:
沒有錯誤,才會執(zhí)行到這裡,而這裡的內(nèi)容是不會被try-catch的。

finally:
這裡面的內(nèi)容是不管有沒有出現(xiàn)錯誤都會執(zhí)行。

範(fàn)例:
while(1):
    try:
        a = int(input("125要除以多少呢?"))
        print(125/a)

    except ZeroDivisionError as ZeroError:
        print("不可以除以0")
    else:
        print("123")

    finally:
        print("have a nice day")


輸入0.執(zhí)行結(jié)果:
125要除以多少呢?0
不可以除以0
have a nice day

反之,不輸入0 :
125要除以多少呢?5
25.0
123
have a nice day

差不多這樣子。

然而,我們總不可能把每一個錯誤都考慮進(jìn)去,所以還有個方法是直接except就好!
except:
    print("輸入錯誤,麻煩重新輸入")
這個有其方便的地方,但是用不好可是會造成大災(zāi)難的,真正的bug,說不定就會被著樣子隱藏起來,反而增多很多不必要的成本。

這次我們改輸入!
輸出結(jié)果:
125要除以多少呢?!
輸入錯誤,麻煩重新輸入
have a nice day


部分參考內(nèi)容:
https://www.itread01.com/hkyeihkc.html

雜談:
昨天吃新天地,那個肉、那個肋排,舒服!




創(chuàng)作回應(yīng)

更多創(chuàng)作