欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

什么是Python異常處理機(jī)制-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

成都創(chuàng)新互聯(lián)公司主營倉山網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件定制開發(fā),倉山h5微信小程序定制開發(fā)搭建,倉山網(wǎng)站營銷推廣歡迎倉山等地區(qū)企業(yè)咨詢

今天就跟大家聊聊有關(guān)什么是Python異常處理機(jī)制,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

異常機(jī)制己經(jīng)成為衡量一門編程語言是否成熟的標(biāo)準(zhǔn)之一,使用異常處理機(jī)制的 Python 程序有更好的容錯性,更加健壯。

對于計(jì)算機(jī)程序而言,情況就更復(fù)雜了一一沒有人能保證自己寫的程序永遠(yuǎn)不會出辛苦!就算程序沒有錯誤,你能保證用戶總是按你的意愿來輸入?就算用戶都是非常“聰明而且配合”的,你能保證運(yùn)行該程序的操作系統(tǒng)永遠(yuǎn)穩(wěn)定?你能保證運(yùn)行該程序的硬件不會突然壞掉?你能保證網(wǎng)絡(luò)永遠(yuǎn)通暢……你無法保證的情況太多了!

對于一個程序設(shè)計(jì)人員來說,需要盡可能預(yù)知所有可能發(fā)生的情況,盡可能保證程序在所有糟糕的情形下也都可以運(yùn)行。

考慮前面介紹的五子棋程序:當(dāng)用戶輸入下棋坐標(biāo)時(shí),程序要判斷用戶輸入是否合法。如果保證程序有較好的容錯性,將會有如下偽碼:

if 用戶輸入包含除逗號之外的其他非數(shù)字字符:
    alert 坐標(biāo)只能是數(shù)值
    goto retry
elif 用戶輸入不包含逗號:
    alert 應(yīng)使用逗號分隔兩個坐標(biāo)值
    goto retry
elif 用戶輸入的坐標(biāo)值超出了有效范圍:
    alert 用戶輸入的坐標(biāo)應(yīng)位于棋盤坐標(biāo)之內(nèi)
    goto retry
elif 用戶輸入的坐標(biāo)已有棋子:
    alert "只能在沒有棋子的地方下棋"
    goto retry
else:
    #業(yè)務(wù)實(shí)現(xiàn)代碼
    ...

上面代碼還未涉及任何有效處理,只是考慮了 4 種可能的錯誤,代碼量就己經(jīng)急劇增加了。但實(shí)際上,上面考慮的 4 種情況還遠(yuǎn)未包括所有可能的情況(事實(shí)上,世界上的意外是不可窮舉的),程序可能發(fā)生的異常情況總是多于程序員所能考慮到的意外情況。

而且正如前面所提到的,高傲的程序員在開發(fā)程序時(shí)更傾向于認(rèn)為:“對,錯誤也許會發(fā)生,但那是別人造成的,不關(guān)我的事”。

如果每次在實(shí)現(xiàn)真正的業(yè)務(wù)邏輯之前,都需要不厭其煩地考慮各種可能出錯的情況,針對各種錯誤情況給出補(bǔ)救措施,這是多么乏味的事情啊。程序員喜歡解決問題,喜歡開發(fā)帶來的“創(chuàng)造”快感,但不喜歡像一個“堵漏”工人,去堵那些由外在條件造成的“漏洞”。

對于構(gòu)造大型、健壯、可維護(hù)的應(yīng)用而言,錯誤處理是整個應(yīng)用需要考慮的重要方面,程序員不能僅僅只做“對”的事情,程序員開發(fā)程序的過程,是一個創(chuàng)造的過程,這個過程需要有全面的考慮,僅做“對”的事情是遠(yuǎn)遠(yuǎn)不夠的。

對于上面的錯誤處理機(jī)制,主要有如下兩個缺點(diǎn):

無法窮舉所有的異常情況。因?yàn)槿祟愔R的限制,異常情況總比可以考慮到的情況多,總有“漏網(wǎng)之魚”的異常情況,所以程序總是不夠健壯。

錯誤處理代碼和業(yè)務(wù)實(shí)現(xiàn)代碼混雜。這種錯誤處理和業(yè)務(wù)實(shí)現(xiàn)混雜的代碼嚴(yán)重影響程序的可讀性,會增加程序維護(hù)的難度。

程序員希望有一種強(qiáng)大的機(jī)制來解決上面的問題,希望將上面程序改成如下偽碼:

if 用戶輸入不合法:
    alert 輸入不合法
    goto retry
else :
    #業(yè)務(wù)實(shí)現(xiàn)代碼
    ...

上面?zhèn)未a提供了一個非常強(qiáng)大的“if 塊”,即程序不管輸入錯誤的原因是什么,只要用戶輸入不滿足要求,程序就一次處理所有的錯誤。這種處理方法的好處是,使得錯誤處理代碼變得更有條理,只需在一個地方處理錯誤。

現(xiàn)在的問題是,“用戶輸入不合法”這個條件怎么定義?當(dāng)然,對于這個簡單的要求,可以使用正則表達(dá)式對用戶輸入進(jìn)行匹配,當(dāng)用戶輸入與正則表達(dá)式不匹配時(shí)即可判斷“用戶輸入不合法”。但對于更復(fù)雜的情形,就沒有這么簡單了。使用 Python 的異常處理機(jī)制就可以解決這個問題。

看完上述內(nèi)容,你們對什么是Python異常處理機(jī)制有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝大家的支持。

當(dāng)前名稱:什么是Python異常處理機(jī)制-創(chuàng)新互聯(lián)
文章URL:http://chinadenli.net/article10/cdoodo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司關(guān)鍵詞優(yōu)化定制網(wǎng)站外貿(mào)網(wǎng)站建設(shè)做網(wǎng)站電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化