我有一个包含缓存(Set)的类,缓存是基于实例化构建的。如果构建缓存失败(无法连接到数据库或某些数据库),我很困惑应该抛出哪个异常/错误。构建缓存失败时应抛出哪个异常?
class Provider {
public Provider() {
buildCache();
}
private void buildCache() {
try {
this.cache = getDataFromDb();
} catch (Exception ex) {
throw new ???
}
}
}
一个例外来在我心目中是ExceptionInInitializerError
,但javadoc中说,这是在初始化静态成员抛出。
我应该抛出一个IllegalStateException
导致缓存没有建立,所以这个类是无用的吗?
很明显,我可以创建自己的ErrorOnBuildingCache
并抛出它,但我不知道Java库中是否有任何异常适合这种情况。