logo

Java가 마침내 차단되었습니다.

Java가 마침내 차단되었습니다. 연결 종료 등 중요한 코드를 실행하는 데 사용되는 블록입니다.

Java finally 블록은 예외 처리 여부에 관계없이 항상 실행됩니다. 따라서 예외 발생 여부에 관계없이 인쇄해야 하는 필수 명령문이 모두 포함되어 있습니다.

finally 블록은 try-catch 블록 뒤에 옵니다.

finally 블록의 흐름도

Java가 마침내 차단되었습니다.

참고: 예외를 처리하지 않으면 프로그램을 종료하기 전에 JVM이 finally 블록(있는 경우)을 실행합니다.

Java finally 블록을 사용하는 이유는 무엇입니까?

  • Java의 finally 블록을 사용하여 ' 대청소 ' 파일 닫기, 연결 닫기 등과 같은 코드.
  • 인쇄할 중요한 문은 finally 블록에 배치할 수 있습니다.

마침내 Java의 사용법

Java finally 블록을 사용할 수 있는 다양한 사례를 살펴보겠습니다.

사례 1: 예외가 발생하지 않는 경우

Java 프로그램이 예외를 발생시키지 않고 try 블록 다음에 finally 블록이 실행되는 아래 예를 살펴보겠습니다.

TestFinallyBlock.java

 class TestFinallyBlock { public static void main(String args[]){ try{ //below code do not throw any exception int data=25/5; System.out.println(data); } //catch won't be executed catch(NullPointerException e){ System.out.println(e); } //executed regardless of exception occurred or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of phe code...'); } } 

산출:

Java가 마침내 차단되었습니다.

사례 2: 예외가 발생했지만 catch 블록에서 처리되지 않는 경우

채우기 예제를 살펴보겠습니다. 여기서 코드는 예외를 발생시켰지만 catch 블록은 이를 처리할 수 없습니다. 그럼에도 불구하고 try 블록 다음에 finally 블록이 실행되면서 프로그램이 비정상적으로 종료됩니다.

TestFinallyBlock1.java

 public class TestFinallyBlock1{ public static void main(String args[]){ try { System.out.println('Inside the try block'); //below code throws divide by zero exception int data=25/0; System.out.println(data); } //cannot handle Arithmetic type exception //can only accept Null Pointer type exception catch(NullPointerException e){ System.out.println(e); } //executes regardless of exception occured or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of the code...'); } } 

산출:

Java가 마침내 차단되었습니다.

사례 3: 예외가 발생하고 catch 블록에서 처리되는 경우

예:

Java 코드가 예외를 발생시키고 catch 블록이 예외를 처리하는 다음 예제를 살펴보겠습니다. 나중에 try-catch 블록 다음에 finally 블록이 실행됩니다. 또한 나머지 코드도 정상적으로 실행됩니다.

TestFinallyBlock2.java

 public class TestFinallyBlock2{ public static void main(String args[]){ try { System.out.println('Inside try block'); //below code throws divide by zero exception int data=25/0; System.out.println(data); } //handles the Arithmetic Exception / Divide by zero exception catch(ArithmeticException e){ System.out.println('Exception handled'); System.out.println(e); } //executes regardless of exception occured or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of the code...'); } } 

산출:

Java가 마침내 차단되었습니다.

규칙: 각 try 블록에는 0개 이상의 catch 블록이 있을 수 있지만 finally 블록은 하나만 있을 수 있습니다.

참고: 프로그램이 종료되면(System.exit()를 호출하거나 프로세스를 중단시키는 치명적인 오류가 발생하여) finally 블록은 실행되지 않습니다.