이것은 코드 스타일 질문입니다. 초기화가 null에 finally
블록에 null을 확인하기 위해개방형 스트림 try/finally 블록 용 Java 코드 스타일
InputStream in = null;
try {
in = acquireStream();
...
} finally {
if (in != null) in.close();
}
참고 : 좀 examples from Oracle이 스트림은 다음과 같은 방식으로 폐쇄되어 있는지 확인을 포함하여 많은 예제 코드를 확인할 수 있습니다.
나는 다음과 같은 코드를 작성하는 경향이 중 접근 방식의 장점 또는 단점은
InputStream in = acquireStream();
try {
...
} finally {
in.close();
}
이 있습니까? 나는 널 수표가 필요 없기 때문에 내 스타일을 좋아한다. 나는 가능한 한 null
을 피하고 싶다. 하지만 오라클 스타일은 온라인 예제에서 흔히 볼 수있는 것이므로 숨겨진 오류가 있는지 궁금합니다.
try
블록 외부 리소스를 인수 한 후 NULL 체크하지 않고
finally
에 닫습니다 경향 등
InputStream
,
OutputStream
,
java.sql.Connection
,
java.sql.PreparedStatement
에 대해 같은 질문을. 문체상의 차이점 이외에 내가 놓친 것이 있습니까?
감사합니다.
참조 : http://commons.apache.org/io/api-release/org/apache/commons/io/IOUtils.html#closeQuietly(java.io.InputStream) – Jon