【发布时间】:2011-02-24 11:30:47
【问题描述】:
所以,我使用的 API 在某些方面有点不友好。基本上,这个 API 创建了一个可以稍后获取的资源。当我们稍后去获取它时,这个资源可能仍然存在,也可能不存在。
要获取之前创建的资源,您必须使用这样的结果 guid:
String resultKey = "12345";
PersistedResult r = mFactory.getPersistedResult(resultKey);
现在,这里的棘手之处在于 getPersistedResult 在使用无效 guid 调用时不会引发异常...PersistedResult 是一个惰性加载器,只有在调用其中一个方法时才会失败(导致对象自行加载)。
所以,为了尝试确定资源是否有效,我正在执行以下操作:
PersistedResult r = null;
if (!StringUtils.isEmpty(resultKey)) {
try {
r = mFactory.getPersistedResult(resultKey);
r.getResultCount(); // Triggers exception if result key was invalid.
} catch (Exception e) {
// handle exception
}
}
我对@987654325@ 的调用是否有被优化的风险,因为我没有使用该值?
在PersistedResult 上调用任何方法都会转到外部数据库,以防万一。
谢谢
【问题讨论】:
-
try-catch 是否只在 r.getResultCount 附近?
标签: java optimization compiler-construction