티스토리 뷰

★ try - catch문

예외 상황을 처리하는 가장 기본 문법인 try-catch문의 형식은 다음과 같다. 

 

try{
예외가 발생할 수 있는 코드 부분
}catch(처리할 예외 타입 e) {
try 블록 안에서 예외가 발생했을 때 예외를 처리하는 부분
}

 

예시를 보겠다.

 

1. int 타입의 number를 100으로 지정, int result를 0으로 지정한다.

2. number 값을 랜덤 값으로 나눈 결과 출력을 한다.

3. math.random( ) * 10 은 1~10 중 난수라는 뜻이다.

출력 결과

0으로 나누는 오류가 나는 것을 방지하기 위해 예외 처리를 해주는 과정이다. 

 

4. cathc 부분에 예외를 처리할 타입은 ArithmeticException 타입의 Exception이라는 것을 입력한다.

  ArithmeticException 타입의 Exception 이 등장하면 "손님, 0으로 나누시면 안됩니다." 라고 출력되도록 설정한다.

  그럼 랜덤 값 중 하나가 아래와 같이 출력이 된다. 

즉, 과정을 다시 설명하자면

exception이라는 인스턴스 코드의 실행 과정에서 0으로 나누는 예외가 발생하면 

그때, new ArithmeticException ( ); 인스턴스를 생성하고, exception 변수를 초기화 한다.

( exception = new ArithmeticException ( ); )

exception.toString( )을 이용하면 에러 이벤트의 toString()을 호출해서 간단한 에러 메시지 확인

5.e.printStackTrace() 를 이용하면 에러 메세지의 발생 근원지를 찾아 단계별로 에러 출력된다.

이렇게 발생 근원지를 알려준다.

 

6. e.getMessage() 을 이용하면  에러 이벤트와 함께 들어오는 메세지 출력한다.

이렇게 0으로 나눈다는 메세지를 출력해준다.


정리

e.getMessage( ) : 에러 이벤트와 함께 들어오는 메세지 출력
e.toString( ) : 에러 이벤트의 toString()을 호출해서 간단한 에러 메시지 확인
e.printStackTrace( ) : 에러 메세지의 발생 근원지를 찾아 단계별로 에러 출력

 

※ 이 글은 playdata 강의를 참고했습니다