1、函數(shù)的返回值可以忽略,但異常不可忽略。
如果程序出現(xiàn)異常,但是沒有被捕獲,程序就會(huì)終止,這多少會(huì)促使程序員開發(fā)出來(lái)的程序更健壯一點(diǎn)。而如果使用C語(yǔ)言的error宏或者函數(shù)返回值,調(diào)用者都有可能忘記檢查,從而沒有對(duì)錯(cuò)誤進(jìn)行處理,結(jié)果造成程序莫名其面的終止或出現(xiàn)錯(cuò)誤的結(jié)果。
2、整型返回值沒有任何語(yǔ)義信息。
而異常卻包含語(yǔ)義信息,有時(shí)你從類名就能夠體現(xiàn)出來(lái)。
3、整型返回值缺乏相關(guān)的上下文信息。
異常作為一個(gè)類,可以擁有自己的成員,這些成員就可以傳遞足夠的信息。
4、異常處理可以在調(diào)用跳級(jí)。
這是一個(gè)代碼編寫時(shí)的問(wèn)題:假設(shè)在有多個(gè)函數(shù)的調(diào)用棧中出現(xiàn)了某個(gè)錯(cuò)誤,使用整型返回碼要求你在每一級(jí)函數(shù)中都要進(jìn)行處理。而使用異常處理的棧展開機(jī)制,只需要在一處進(jìn)行處理就可以了,不需要每級(jí)函數(shù)都處理。
更多關(guān)于物聯(lián)網(wǎng)培訓(xùn)的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗(yàn),采用全程面授高品質(zhì)、高體驗(yàn)培養(yǎng)模式,擁有國(guó)內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實(shí)現(xiàn)高薪夢(mèng)想。