staticextension 上提供值时引发了异常_干!一张图整理了 Python 所有内置异常
在編寫程序時(shí),可能會(huì)經(jīng)常報(bào)出一些異常,很大一方面原因是自己的疏忽大意導(dǎo)致程序給出錯(cuò)誤信息,另一方面是因?yàn)橛行┊惓J浅绦蜻\(yùn)行時(shí)不可避免的,比如在爬蟲時(shí)可能有幾個(gè)網(wǎng)頁(yè)的結(jié)構(gòu)不一致,這時(shí)兩種結(jié)構(gòu)的網(wǎng)頁(yè)用同一套代碼就會(huì)出錯(cuò),所以我們就需要捕獲出現(xiàn)的異常,以防止程序因?yàn)殄e(cuò)誤信息而終止運(yùn)行。
Python有很多的內(nèi)置異常,也就是說(shuō)Python開(kāi)發(fā)者提前考慮到了用戶編程過(guò)程中可能會(huì)出現(xiàn)這類錯(cuò)誤,所以制造了這些內(nèi)置異常可以快速準(zhǔn)確向用戶反饋出錯(cuò)信息幫助找出代碼中的bug。
Python官方文檔中也給出了所有內(nèi)置異常及觸發(fā)條件,為了更好的閱讀體驗(yàn),我把所有異常及觸發(fā)條件整理成了一張思維導(dǎo)圖:
1、SyntaxError
SyntaxError主要是Python語(yǔ)法發(fā)生了錯(cuò)誤,比如少個(gè)冒號(hào)、多個(gè)引號(hào)之類的,編程時(shí)稍微疏忽大意一下就會(huì)出錯(cuò),應(yīng)該是最常見(jiàn)的一種異常錯(cuò)誤了。
2、TypeError
TypeError是類型錯(cuò)誤,也就是說(shuō)將某個(gè)操作或功能應(yīng)用于不合適類型的對(duì)象時(shí)引發(fā),比如整型與字符型進(jìn)行加減法、在兩個(gè)列表之間進(jìn)行相減操作等等。
3、IndexError
IndexError是指索引出現(xiàn)了錯(cuò)誤,比如最常見(jiàn)下標(biāo)索引超出了序列邊界,比如當(dāng)某個(gè)序列m只有三個(gè)元素,卻試圖訪問(wèn)m[4]。
4、KeyError
KeyError是關(guān)鍵字錯(cuò)誤,這個(gè)異常主要發(fā)生在字典中,比如當(dāng)用戶試圖訪問(wèn)一個(gè)字典中不存在的鍵時(shí)會(huì)被引發(fā)。
5、ValueError
ValueError為值錯(cuò)誤,當(dāng)用戶傳入一個(gè)調(diào)用者不期望的值時(shí)會(huì)引發(fā),即使這個(gè)值的類型是正確的,比如想獲取一個(gè)列表中某個(gè)不存在值的索引。
6、AttributeError
AttributeError是屬性錯(cuò)誤,當(dāng)用戶試圖訪問(wèn)一個(gè)對(duì)象不存在的屬性時(shí)會(huì)引發(fā),比如列表有index方法,而字典卻沒(méi)有,所以對(duì)一個(gè)字典對(duì)象調(diào)用該方法就會(huì)引發(fā)該異常。
7、NameError
NameError是指變量名稱發(fā)生錯(cuò)誤,比如用戶試圖調(diào)用一個(gè)還未被賦值或初始化的變量時(shí)會(huì)被觸發(fā)。
8、FileNotFoundError
FileNotFoundError為打開(kāi)文件錯(cuò)誤,當(dāng)用戶試圖以讀取方式打開(kāi)一個(gè)不存在的文件時(shí)引發(fā)。
9、StopIteration
StopIteration為迭代器錯(cuò)誤,當(dāng)訪問(wèn)至迭代器最后一個(gè)值時(shí)仍然繼續(xù)訪問(wèn),就會(huì)引發(fā)這種異常,提醒用戶迭代器中已經(jīng)沒(méi)有值可供訪問(wèn)了。
10、AssertionError
AssertionError為斷言錯(cuò)誤,當(dāng)用戶利用斷言語(yǔ)句檢測(cè)異常時(shí),如果斷言語(yǔ)句檢測(cè)的表達(dá)式為假,則會(huì)引發(fā)這種異常。
上面這些異常應(yīng)該是平時(shí)編程中遇見(jiàn)頻率比較高的一部分,完整的還是要看上文的思維導(dǎo)圖或者查閱官方文檔,當(dāng)然除此之外Python也支持用戶根據(jù)自己的需求自定義異常,這里就不再過(guò)多概述了。
對(duì)于異常的處理Python也有著比較強(qiáng)大的功能,比如可以捕獲異常,主動(dòng)拋出異常等等,主要有下面幾種方式:
- 1.try ... except 結(jié)構(gòu)語(yǔ)句捕獲
- 2.try ... except ... finally 結(jié)構(gòu)語(yǔ)句捕獲
- 3.try ... except ... else 結(jié)構(gòu)語(yǔ)句捕獲
- 4.raise關(guān)鍵字主動(dòng)拋出異常
- 5.try ... raise ... except 觸發(fā)異常
- 6.assert斷言語(yǔ)句
- 7.traceback模塊跟蹤查看異常
總結(jié)
以上是生活随笔為你收集整理的staticextension 上提供值时引发了异常_干!一张图整理了 Python 所有内置异常的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 50欧元去银行换尴尬吗 去银行换50欧元
- 下一篇: python 表格处理软件_基于Pyth