我有一個類管理磁盤上的文件,保存以xml形式的reoport。因爲它使用JAXB(但可以使用任何其他xml庫,它不相關),它可以生成jaxb(或任何其他xml庫)檢查異常。
爲了保留封裝,我應該將我的原始庫異常「轉換」爲我的庫的邏輯級別。但我不想增加很少,很少相關課程的班級數量。 由於類是文件相關的,我認爲IOException對於這種情況是足夠的。java異常保存封裝示例
public void save(File file) throws IOException {
try{
JAXBContext jc = JAXBContext.newInstance(ArchiveInfo.class);
Marshaller m = jc.createMarshaller();
m.marshal(this, file);
} catch (JAXBException jexc) {
throw new IOException(jexc);
}
}
- 你同意這種解決方案達成一致,是一個很好的權衡簡單性和正確性之間?
- 我很幸運,因爲我發現了一個合適的例外。如果我不是,我必然會定義自己的異常,因爲使用Exception類不是很好的設計。 (導致調用者捕獲異常,隱式捕獲RuntimeException)。 運行時異常在RuntimeException類中有一個共同的祖先,而所有檢查的異常沒有嗎?它不是異常結構中的異常嗎?