4 回答

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊
關(guān)于Index out of bound of exception的簡(jiǎn)單解釋是:
試想一下火車的艙室是D1,D2,D3。一名乘客來到火車,他有D4的機(jī)票。現(xiàn)在會(huì)發(fā)生什么。乘客想進(jìn)入一個(gè)不存在的隔間,所以很明顯會(huì)出現(xiàn)問題。
相同的場(chǎng)景:每當(dāng)我們嘗試訪問數(shù)組列表等時(shí),我們只能訪問數(shù)組中的現(xiàn)有索引。array[0]
并且array[1]
存在。如果我們嘗試訪問array[3]
,實(shí)際上并不存在,那么將出現(xiàn)索引超出范圍的異常。

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
從非常長(zhǎng)的完全接受的答案的一方面來看,IndexOutOfRangeException
與許多其他異常類型相比,有一個(gè)重點(diǎn),那就是:
通常存在復(fù)雜的程序狀態(tài),可能難以在代碼中的特定點(diǎn)控制,例如DB連接斷開,因此無法檢索輸入的數(shù)據(jù)等......這種問題通常會(huì)導(dǎo)致某種類型的異常必須冒泡到更高的水平,因?yàn)樗l(fā)生的地方在那時(shí)無法處理它。
IndexOutOfRangeException
通常不同之處在于,在大多數(shù)情況下,在引發(fā)異常時(shí)檢查它是非常簡(jiǎn)單的。通常這種異常會(huì)被某些代碼拋出,這些代碼可以很容易地在它發(fā)生的地方處理問題 - 只需檢查數(shù)組的實(shí)際長(zhǎng)度即可。您不希望通過更高級(jí)處理此異常來“修復(fù)”此問題 - 而是確保它不會(huì)在第一個(gè)實(shí)例中拋出 - 在大多數(shù)情況下通過檢查數(shù)組長(zhǎng)度很容易。
另一種說法是,由于真正缺乏對(duì)輸入或程序狀態(tài)的控制,可能會(huì)出現(xiàn)其他異常,但IndexOutOfRangeException
通常只是導(dǎo)頻(程序員)錯(cuò)誤。
- 4 回答
- 0 關(guān)注
- 4350 瀏覽
添加回答
舉報(bào)