3 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
因?yàn)楫?dāng)你捕獲異常時(shí),你應(yīng)該正確處理它。而且您不能指望在代碼中處理所有類型的異常。此外,當(dāng)您捕獲所有異常時(shí),您可能會(huì)遇到一個(gè)異常,該異常無(wú)法處理并阻止堆棧中的代碼正確處理它。
一般原則是捕捉最具體的類型。

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊
簡(jiǎn)短的故事:它被稱為bug掩蔽。如果你有一段代碼不能正常工作并拋出異常(或者你將錯(cuò)誤的輸入傳遞給那段代碼)而你只是通過(guò)捕獲所有可能的異常而使你的眼睛失明,那么你實(shí)際上永遠(yuǎn)不會(huì)發(fā)現(xiàn)錯(cuò)誤并修復(fù)它。

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
因?yàn)槟阏娴牟恢罏槭裁磿?huì)發(fā)生異常,并且有幾個(gè)例外需要非常特殊的汽車才能正確處理(如果可能的話),例如OutOfMemoryException和類似的低級(jí)系統(tǒng)異常。
因此,您應(yīng)該只捕獲異常:
你知道如何處理它(例如FileNotFoundException等)
之后你會(huì)重新提升它們(例如進(jìn)行失敗后清理)
何時(shí)需要將異常傳輸?shù)搅硪粋€(gè)線程
添加回答
舉報(bào)