我有一個簡單的最小 HTTP 庫,支持雙向 TLS(在 Android 上),在這個庫中,我進(jìn)行了涉及多個 SSL 相關(guān) API 的調(diào)用。最后,有很多例外。因此,我的一個設(shè)置 API 拋出了幾個異常,例如這個列表: * @throws IOException
* @throws CertificateException
* @throws NoSuchAlgorithmException
* @throws KeyStoreException
* @throws UnrecoverableKeyException
* @throws KeyManagementException對于調(diào)用者來說,必須編寫所有這些 catch 語句是很丑陋的。如果我要捕獲庫中的異常并拋出一個異常,比如IllegalArgumentException并將原始異常的名稱及其消息放入消息中,調(diào)用者會丟失任何信息嗎?假設(shè)必須向后兼容 Java 1.6(適用于較舊的 Android)。鑒于異常通常用于指示錯誤,似乎僅創(chuàng)建單個異常對調(diào)用者來說會容易得多,并且不會丟失任何重要內(nèi)容。但我沒有看到它正在完成,所以我認(rèn)為我一定是錯的并且遺漏了一些東西。
1 回答

躍然一笑
TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個贊
最后,這有點(diǎn)風(fēng)格。兩個選擇是有道理的:
你抓住所有這些東西并拋出你自己發(fā)明的檢查異常(圍繞原始異常)
你做同樣的事情,或者使用你自己發(fā)明的未經(jīng)檢查的異常,或者你只是將東西包裝到一個新的 RuntimeException 中
您選擇哪種方式幾乎無關(guān)緊要(也就是自以為是),唯一真正重要的是您清楚地記錄了您的 API 到底在做什么,以及它何時(shí)會拋出什么。
添加回答
舉報(bào)
0/150
提交
取消