본문 바로가기

Java SE/try ~ catch

try ~ catch



finally 블럭이 실행되지 않는 경우는 finally 블럭이 실행되기 전에 System.exit(0)명령이 실행되어 JVM이 작동하지 않을 때이며 그 외의 경우에는 예외발생과 상관없이 항상 실행된다. 즉, finally블럭전에 return문장이 있더라도 결국 finally블럭까지는 실행되는 것이다.

public class TryCatch {

 public static void main(String[] args){
  try{
     System.out.println("Try");
     return; // 여기서 멈추지 않고 finally 블럭까지는 실행된다
  }catch(Exception e){
     System.out.println("Catch");
  }finally{
     System.out.println("Finally");
  }
  System.out.println("End");
 }
}

public class TryCatch02 {

 public static void main(String[] args){
  try{
     System.out.println("Try");
     throw new Exception("예외발생");
  }catch(Exception e){
     System.out.println("Catch");
     return; // 여기서 멈추지 않고 finally 블럭까지는 실행된다
  }finally{
     System.out.println("Finally");
  }
 }
}