포착한 예외를 rethrow하기만 하는 catch 구문은, catch를 생략하고 자동으로 bubble up 하는 것과 같은 효과가 있지만, 코드만 더 많아지고 maintainer가 ‘뭐지…?’라는 생각만 들게합니다
이러한 구문들은 제거되거나, 구문을 사용할만한 이유가 포함된, 적절한 논리가 들어가야합니다.
규칙을 어긴 코드
public String readFile(File f) {
StringBuilder sb = new StringBuilder();
try {
FileReader fileReader = new FileReader(fileName);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while((line = bufferedReader.readLine()) != null) {
//...
}
catch (IOException e) { // 규칙을 어긴 코드
throw e;
}
return sb.toString();
}
규칙을 준수한 해결책
public String readFile(File f) {
StringBuilder sb = new StringBuilder();
try {
FileReader fileReader = new FileReader(fileName);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while((line = bufferedReader.readLine()) != null) {
//...
}
catch (IOException e) {
logger.LogError(e);
throw e;
}
return sb.toString();
}
또는
public String readFile(File f) throws IOException {
StringBuilder sb = new StringBuilder();
FileReader fileReader = new FileReader(fileName);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while((line = bufferedReader.readLine()) != null) {
//...
return sb.toString();
}
If you like SONARKUBE, don’t forget to give me a star.