간만에 답변달 때 먼저달린게 있나하고 체크했더니..

어차피 선행답변이 채택될 확율이 높고.. 나는 채택율이 떨어지거나 지식영향력만 떨어질테니 여기에만 올림.

 

 

질문)

 

 

 

 

내 답변)

 

try{

A


}catch () {

B


}finally {

C


}

 

가 있다고 하면..

A는 실행은 하지만 예외상황(값이 null 같은.. )이 생기면 실행되지 않을 수 도 있습니다.

B는 A에서 예외상황이 발생하면 발생하는 곳이구요.

C는 쓰지 않아도 되지만 쓰게 되면 반드시 실행되는 영역입니다.


즉 A에서 프로그램은 실행은 하지만 예외상황일때는 B를..

A에서 프로그램은 수행하고 별문제는 없지만 해당 메소드가 종료하게 되면, C는 무조건 실행이 되게 되는 겁니다.



아래는 http://hyeonstorage.tistory.com/203 에서 참고한 예제입니다.


1. CLASS


public class ExceptionTest {
    public static void main(String args[]){        
        String[] name = new String[2]// 배열이 2개.
       
        try{
            name[0] = "하이언";
            System.out.println("이름 : "+name[0]); // 패스.
             
            name[1] = "아이유";
            System.out.println("이름 : "+name[1]); // 패스.
           
            name[2] = "윤하";
            System.out.println("이름 : "+name[2]); // 배열의 갯수를 넘어가서 예외처림 됨.
         
        }catch(ArrayIndexOutOfBoundsException e){
            System.out.println("배열 참조 에러 발생");


        }catch(Exception e){
            System.out.println(e.getMessage());


        }finally{
            System.out.println("시스템 종료.");
        }
    }
}



2, RUN