Java

자바 프로그래밍 (Java) - 21 : 예외 처리 방법

n.han 2016. 7. 13. 09:56

- Exception Handling

 

다음은 10을 들어온 인자로 나누는 메서드이다.

 

메서드 내부에서 인자 값이 0이면 인위적으로 예외를 발생시키도록 작성한 것을 볼 수 있다.

 

이 예외는 Checked Exception이기 때문에, 다음과 같이 하지 않으면 컴파일 에러가 발생한다.

 

1) 예외가 발생한 메서드에 throws Exception으로 발생한 예외를 호출한 곳으로 던진다.

 

2) 메서드 내부적에서 try – catch로 예외를 핸들링한다.

 

이 경우 첫 번째 방법이 권장된다. 그 이유는 메서드 내부에서 예외를 발생 시키고,

 

이를 다시 예외를 발생시킨 곳에서 try - catch문으로 핸들링한다는 것은 예외 처리라는 의미가 없어지기 때문이다.

 

다시말해 메서드 내부에서 예외가 발생하면 메서드를 호출한 개발자가 예외가 발생했다는 사실을 알고 싶은 경우가 많고,

 

이를 개발자가 처리할 수 있는 여지를 주어야 한다는 것이다.

 

그렇지 않고 내부적으로 예외를 처리하면 그 메서드를 호출한 곳은 예외가 발생했는 지 여부조차 알 수가 없다.

 

public class Hello {

        public static void main(String[] args) {

               try {

                       devideByParam(0);

               } catch (Exception e){

                       System.out.println(e);

               }

        }

       

        public static void devideByParam(int num) throws Exception {

               if (num == 0)

                       throw new Exception("잘못된 num입니다.");

               else {

                       System.out.println(10 / num);

               }

        }

}