Java异常保留封装示例

问题描述

| 我有一个管理磁盘上文件的类,以xml格式保存报告。 由于它使用JAXB(但可以使用任何其他xml库,因此不相关),因此可以生成jaxb(或任何其他xml库)检查的异常。 为了保留封装,我应该在库逻辑级别的某个位置“转换”我的原始库异常。但是我不想增加班级数量少,相关性差的班级。 由于该类与文件相关,因此我认为IOException就足够了。
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类并不是很好的设计。 (导致调用方捕获Exception,也隐式捕获RuntimeException)。 运行时异常在RuntimeException类中具有一个共同的祖先,而所有检查的异常都没有,这是异常结构中的异常吗?     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)