假設(shè)我的團(tuán)隊(duì)正在開(kāi)發(fā)一個(gè)庫(kù)程序,由于某種原因,現(xiàn)在希望能夠得到所有最外層
API
所拋出的所有異常的類(lèi)型、各自的信息、并且能夠附上各種異常所出現(xiàn)的原因和解決辦法。如果開(kāi)發(fā)過(guò)程中內(nèi)部使用的是
Unchecked
Exception
,那么對(duì)于這個(gè)任務(wù)簡(jiǎn)直就麻煩了。沒(méi)辦法,開(kāi)發(fā)人員一個(gè)個(gè)的自我進(jìn)行檢查然后統(tǒng)計(jì)吧,但是往往這樣的統(tǒng)計(jì)總會(huì)有漏網(wǎng)之魚(yú)。現(xiàn)在的
MSDN
中的異常信息糟糕的很,最底層的公有庫(kù)的異常信息內(nèi)容可能完整一點(diǎn),但是上層的庫(kù)的異常信息糟糕的不行,根本不能完整的報(bào)全所有出錯(cuò)的可能性。
你可以想象的出,一個(gè)庫(kù)函數(shù)的異常信息不完整,對(duì)于他的用戶來(lái)說(shuō),是多么不友好的事情。假設(shè)
MSDN
中
File.Open()
會(huì)拋出
IOException
,你的程序就很難想到很規(guī)矩的對(duì)
IOException
做了
catch
,然后提示用戶檢查相應(yīng)位置的文件是否存在
/
被打開(kāi)等。別指望
MSDN
的那些信息能夠?qū)K端用戶有多大的幫助,太多不懂計(jì)算機(jī)的人在傻呆呆的握著鼠標(biāo)了。再加上
MicroSoft
的提示信息本身就存在著“答非所問(wèn)”,“莫名其妙”的事情,用戶看到這些情況就更不知道怎么解決問(wèn)題了。再加上自己的應(yīng)用程序中會(huì)彈出一個(gè)個(gè)“蹩腳”的運(yùn)行時(shí)錯(cuò)誤的錯(cuò)誤框,真的不是一個(gè)很如意的創(chuàng)作。
?
?
?
?
但是,如果使用的是
Checked Exception
,這時(shí)候編譯器會(huì)強(qiáng)迫你的外部接口的異常相當(dāng)?shù)耐暾?,最起碼可以做到比
MSDN
的異常類(lèi)型齊整。
?
?
?
?