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类中具有一个共同的祖先,而所有检查的异常都没有,这是异常结构中的异常吗?
没有找到相关结果
已邀请:
1 个回复
摊揉售