Eclipse (Juno) 给出以下警告:
潜在的资源泄漏:“os”可能未关闭
在第一行try
这段代码中的主体:
static void saveDetails(byte[] detailsData) {
OutputStream os = null;
try {
os = sContext.openFileOutput(DETAILS_FILE_NAME, Context.MODE_PRIVATE);
os.write(detailsData);
} catch (IOException e) {
Log.w(LOG_TAG, "Unable to save details", e);
} finally {
if (os != null) {
try {
os.close();
} catch (IOException ignored) {
}
}
}
}
方法openFileOutput
被声明抛出一个FileNotFoundException
.
这是误报吗?这看起来像是一个相当普通的执行路径分析。
在我看来,这是误报。您的资源在“finally”块中关闭,因此我看不出这里会出现什么问题。
作为旁注,如果您使用 Java 7,我建议使用“try-with-resources”习惯用法。
static void saveDetails(byte[] detailsData) {
try (OutputStream os = sContext.openFileOutput(DETAILS_FILE_NAME, Context.MODE_PRIVATE);) {
os = sContext.openFileOutput(DETAILS_FILE_NAME, Context.MODE_PRIVATE);
os.write(detailsData);
} catch (IOException e) {
Log.w(LOG_TAG, "Unable to save details", e);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)