BufferedReader fileIn = null; try { fileIn = new BufferedReader(new FileReader(filename)); //etc. } catch(IOException e) { fileArrayList.removeall(fileArrayList); } finally { try { if (fileIn != null) fileIn.close(); } catch (IOException io) { //log exception here } } return fileArrayList;
关于上述代码的几件事:
- close应该在final中,否则在代码正常完成时,或者在IOException之外引发其他异常时,它不会关闭。
- 通常,您有一个静态实用程序方法来关闭类似的资源,以便它检查null并捕获任何异常(除了在此上下文中登录外,您永远不想做任何其他事情)。
- 返回属于尝试之后的内容,因此主代码和异常捕获都具有没有冗余的return方法。
- 如果将返回值放在finally中,则会生成编译器警告。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)