Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java의 메소드에서 return 문 다음에 finally 블록이 실행됩니까?

<시간/>

예, finally 블록은 메서드의 return 문 이후에도 실행됩니다.

최종 차단 Java에서 예외가 발생했든 발생하지 않았든 항상 실행합니다. System.exit()를 호출하면 finally 블록에 명시적으로 메서드 그러면 실행되지 않을 뿐입니다. JVM 크래시와 같이 finally가 실행되지 않는 상황은 거의 없습니다. , 정전 , 소프트웨어 충돌 등. 이러한 조건 외에는 최종적으로 차단 항상 실행됩니다.

예시

public class FinallyBlockAfterReturnTest {
   public static void main(String[] args) {
      System.out.println(count());
   }
   public static int count() {
      try {
         return 1;
      } catch(Exception e) {
         return 2;
      } finally {
         System.out.println("Finally block will execute even after a return statement in a method");
      }
   }
}

출력

Finally block will always excute even after a return statement in a method
1