Daily coding

Java Basic : day 7 - Exception 예외처리2 본문

Language/Java_basic

Java Basic : day 7 - Exception 예외처리2

sunnnkim 2019. 11. 26. 18:45

// 함수에 예외 적용하기 

// 1. 예외 던지기

try {
         funcExcp();

} catch (Exception e) {
         System.out.println("예외 발생");
}

 

// 2. 예외 만들기
try {
         throw Excp(); // 지금은 무조건 예외가 발생하는 메소드 호출한다.  
} catch (Exception e) {
         System.out.println("예외 만들어서 던짐");
}




}

// 메소드 부분

 

static void funcExcp() throws ArrayIndexOutOfBoundsException{

         int n[] = { 1, 2, 3 };
      
                  for (int i = 0; i < 4; i++) {
                           System.out.println(n[i]);
                  }
                  System.out.println("이코드는 예외가 없으면 출력 됨.");
         
}

// 위의 메소드는 예외가 발생하면 해당 메소드를 사용하는 상위 메소드(지금 경우에는 main 메소드)가

//   예외처리를 하도록 예외를 던진다.

// throws ArrayIndexOutOfBoundsException :

// throws : 현 메소드에서 예외를 처리하지 않고 다음 메소드에 맡긴다는 키워드  

// ArrayIndexOutOfBoundsException 예외가 발생하면 throws


throws : 예외 던지기  


// 해당 메소드가 예외가 나올 수 있음을 미리 표시함
// 해당 메소드에서는 예외처리를 따로 하지 않아도 되지만
// 해당 메소드를 사용하는 다른 메소드(상위 메소드) 에서 예외 처리를 해주거나 
// 다시 throws 해줘야 함.  
// 위의 경우에서는 main 메소드에서 처리해줬음.

 

 


throw : 예외 자체를 만들기

// try문에서 예외를 만들어 catch를 실행시키도록 함

static void throwExcp() throws Exception{
         int a[] = new int[5];
         for (int i = 0; i < 4; i++) 
                  a[i] = 1;
                  a[4] = 2;
                  try {
                           for (int i = 0; i < a.length; i++) {
                                    if(a[i] == 1) {
                                             System.out.println("try문 실행중 ");
                                    }else {
                                             throw new Exception();
                                             // else문에 들어왔을 때 
                                             // 새로운 예외를 일부러 발생시킨다.
                                    }
                           }
                  } catch (Exception e) {
         System.out.println("예외 만드는 중");
         throw e;
}

}


}

 

출력결과 :

 

1
2
3
예외 발생
try문 실행중 
try문 실행중 
try문 실행중 
try문 실행중 
예외 만드는 중
예외 만들어서 던짐