본문 바로가기
스터디/Java

[Java 자바] finally는 반드시 실행된다.

by dingwoon 2024. 11. 10.

try, catch, finally 구조

  • try 블록
    예외가 발생할 가능성이 있는 코드를 포함.
  • catch 블록
    try 블록에서 예외가 발생할 경우 그 예외를 처리하는 코드를 포함.
  • finally 블록
    예외 발생 여부와 상관없이 try 블록 이후에 반드시 실행되는 코드를 포함.

try나 catch에서 return할 경우 finally 코드

finally 블록은 어떠한 경우에도 try나 catch의 코드를 수행한 후에 반드시 수행된다.

try에서 발생한 예외 중에 catch에서 잡지 않은 예외가 있는 경우

finally 블록을 실행한 후에 상위 호출자에게 예외를 전파한다.

catch에서 예외가 발생할 경우

finally 블록을 실행한 후에 상위 호출자에게 예외를 전파한다.

finally 코드가 수행되지 않는 경우

finally 코드가 수행되기 전에 System.exit()등의 이유로 JVM이 강제로 종료되면 당연하게도 finally 코드를 수행하지 못합니다.