기능상의 차이가 있습니까?try/finally에서 try의 내용이 중요합니까?
Connection c = null;
try {
c = getConnection();
c.doStuff();
} finally {
if (c!=null) c.close();
}
대
Connection c = null;
c = getConnection();
c.doStuff();
try {
} finally {
if (c!=null) c.close();
}
는
Connection c = null;
try {
c = getConnection();
} finally {
if (c!=null) c.close();
}
c.doStuff();
대 나는 그들 모두가 모든 경우에 try-finally
블록의 외부에서 발생하는
'시도'의 목적을 알고 있다면이 답변을 알 수 있습니다. 'try'에 넣지 않으면 예외를 잡을 수 없습니다. –
당신은 예외 처리, 간단한 사건 돌봐, DB를 해제 해보십시오. –
세 가지 예제는 매우 다른 동작을합니다. 'try' 블록의 외부에서 발생하는 예외는 처리되지 않은 예외에 대한 바로 정의입니다. 이 경우에'finally' 코드가 실행될 것 같지 않습니다. 마지막 예제에서는 연결을 사용하기 전에 연결이 닫힙니다. 유일한 예는 첫 번째 예입니다. – Craig