[java] try-finally 문과 try-catch-finally 문의 차이점은 무엇인가요?
try-finally 문은 예외가 발생하든 발생하지 않든 반드시 실행되는 코드 블록을 정의합니다. 이는 예외가 발생하더라도 반드시 자원을 해제하거나 정리해야 하는 경우에 유용합니다.
FileInputStream inputStream = null;
try {
inputStream = new FileInputStream("file.txt");
// 파일에서 데이터를 읽는 코드
} finally {
if (inputStream != null) {
inputStream.close(); // 자원 해제
}
}
try-catch-finally 문은 예외가 발생할 경우 이를 처리하는 catch 블록을 추가로 포함합니다. 예외 처리를 위해 추가적인 로직을 수행해야 하는 경우에 사용됩니다.
try {
// 예외가 발생할 수 있는 코드
} catch (IOException e) {
// IOException 예외 처리
} finally {
// 어떠한 경우에도 실행되어야 하는 코드
}
따라서, try-catch-finally 문은 예외 처리까지 추가적으로 다룰 수 있고, try-finally 문은 단순히 자원을 해제하거나 정리하는 데에 적합합니다.