SonarLint | Printf-style format strings should not lead to unexpected behavior at runtime (java:S2275)
Problem
這個問題是發生在print、formatter、log4j等API,當你該傳入參數是沒傳入時,就可能會被SonarLint找出來。以我的範例來說,是發生在logger.warn的誤用,這會導致輸出的內容將會是{}:
}catch (Exception ex){ logger.warn("get system property error :{}",ex); return aDefaultValue; }
How to fix?
假如你只是要印例外的call stack,把{}拿掉即可:
logger.warn("get system property error",ex);
假如你是要印訊息,就直接getMessage:
logger.warn("get system property error :{}",ex.getMessage());
留言
張貼留言