我编写了一个类,用于加载应用程序的配置对象,并跟踪它们,以便我可以轻松地通过单个方法调用编写更改或重新加载整个配置。但是,每个配置对象在进行IO时都可能会引发异常,但我不希望这些错误取消整个过程,以便为其他对象提供重新加载/编写的机会。因此,当迭代对象时,我收集所有引发的异常并将它们存储在超级异常中,在循环之后抛出该异常,因为每个异常仍然必须处理,并且必须通知某人确切地出了什么问题。但是,这种方法对我来说看起来有点奇怪。是否有其他更简洁的解决方案?
以下是所述类的一些代码:
以下是所述类的一些代码:
public synchronized void store() throws MultipleCauseException
{
MultipleCauseException me = new MultipleCauseException("unable to store some resources");
for(Resource resource : this.resources.values())
{
try
{
resource.store();
}
catch(StoreException e)
{
me.addCause(e);
}
}
if(me.hasCauses())
throw me;
}