A catch
clause that only rethrows the caught exception has the same effect as omitting the catch
altogether and letting
it bubble up automatically, but with more code and the additional detrement of leaving maintainers scratching their heads.
Such clauses should either be eliminated or populated with the appropriate logic.
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) { // Noncompliant 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(); }
or
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(); }