□ finally 블록은 try-catch문 수행한 후에 반드시 수행해야 할 코드들을 위한 영역
□ try 블록에서 예외가 발생하거나 발생하지 않더라도 finally 블록은 항상 수행되기 때문에 반드시 실행해야할 코드들이 오게 되며 주로 사용한 자원을 반환하는데 사용
□ finally 블록은 catch 블록 뒤에 위치하며, catch 블록이 없을 경우에는 try 블록 뒤에 위치
□ try 블록이 존재하지 않을 경우에는 catch 블록과 finally 블록 둘 다 선언될 수 없음
○ 예외가 발생할 경우의 finally 블록
try 블록에서 예외가 발생했을 경우에는 try 블록 내의 나머지 코드들은 실행되지 않고 해당 예외에 대한 catch 블록을 실행한 후 finally 블록 내의 코드를 실행. 예외를 처리할 catch 블록이 없을 경우에는 try 블록에서 finally 블록으로 바로 제어가 넘어가며 이 경우 해당예외는 계속해서 유효하며 메소드에 throws문이 존재 않는 다면 프로그램은 비정상적으로 종료
몇 가지의 예외를[System.exit()] 제외하고 try 블록이나 catch 블록에 return 문이 선언되어 있더라도 finally 블록 내의 코드가 먼저 실행된 다음에 return문이 실행
※ System.exit()가 try 블록이나 catch 블록에서 호출되면 프로그램은 그 즉시 종료
○ 예외가 발생 하지 않을 경우
try 블록에서 예외가 발생하지 않았을 경우에는 try 블록 내의 코드를 모두 실행할 후 finally 블록을 실행. try 블록 내에 return 문이 선언되어 있지 않을 경우에는 finally 블록 내의 코드를 실행한 후 finally 블록 다음 코드들 실행. return 문이 선어 되어 있을 경우에는 finally 블록 내의 코드를 실행한 후 return 문을 실행하게 되므로 finally 블록 다음의 코드들은 실행되지 않음
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.