1
爲什麼SonarQube抱怨這部分代碼?SonarQube:改變這個條件,使它不總是評估爲「false」(最終在javax.mail接收中)
SonarQube說:所以,它並不總是爲「假」
但是我似乎無法理解爲什麼情況將永遠是假的 改變這種狀況呢?事實上,事實上並非如此,我只是在調試模式下重新將這部分重新使用,它完美地工作,它確實進入了內部,並且大多數情況下這種情況並非錯誤。
下面的代碼部分:
} finally {
if ((inboxFolder != null) && (inboxFolder.isOpen())) {
try {
inboxFolder.close(true);
} catch (MessagingException e) {
log.error(e.getMessage(), e);
}
}
if ((store != null) && (store.isConnected())) {
try {
store.close();
} catch (MessagingException e) {
log.error(e.getMessage(), e);
}
}
}
它試圖收到javax.email電子郵件時的的try-catch的最後一部分,它的抱怨,如果條件都有關。
這是那些變量的聲明,他們實例化的int嘗試部分:
Folder inboxFolder = null;
Store store = null;
那麼,爲什麼SonarQube抱怨呢?
這是因爲可能在'try'塊中分配了'indexFolder'和'store'。是嗎? –
當finally代碼塊被執行時,似乎'inboxFolder'總是'null'。你沒有顯示足夠的代碼來確定它。 – Henry
你也可以用資源嘗試來清理它。 – chrylis