[Java] 자바 (1) 예외처리 - 조건문 사용과 그 문제점


예외처리 : 예외 처리 문법이 없을 경우

- 개인용 프로그램일 때는 에러가 떠도 큰 문제가 없을 수 있지만,  기업에서 운영하는

  웹브라우저가 사용자로부터 요청 받으면 안되는 데이터를 받게 될 경우, 서버가 느려

  지거나 뻗는 문제가 발생할 수 있다.  이런 경우에 사용하게 되는 문법이 예외처리이다.



조건문을 사용하여 예외처리를 하는 경우


public class Test02 {
  public static float divide(float a, float b) {
    if (b == 0) {
      return -121255f;
    }
    return a / b;
  }
 
  public static void main(String[] args) {
    float result = divide(10, 2);
    if (result == -121255f) {
      System.out.println("0으로 나눌 수 없습니다.");
    } else{
      System.out.println(result);
    }
    result = divide(10, 0);
    if (result == -121255f) {
      System.out.println("0으로 나눌 수 없습니다.");
    } else {
      System.out.println(result);
    }
  }
}


- 실행 결과 :

5.0

0으로 나눌 수 없습니다.



문제점

 - 조건문을 사용하여 예외처리를 하는 경우 메서드를 호출할 때마다 그 리턴 값을

   검사해야 한다.

 - 메서드를 사용하는 코드 안에 일을 시키는 코드와 예외처리 코드가 섞여 있어서

   유지보수가 어려워진다.

 - 리턴값이 유효한 값인 경우가 종종 발생할 수 있다. (다음 예제 참고)




위 예제에 다음 코드를 추가해보기


result = divide(121255, -1);
    if (result == -121255f) {
      System.out.println("0으로 나눌 수 없습니다.");
    } else {
      System.out.println(result);

    }

- 실행결과 :

5.0

0으로 나눌 수 없습니다.

0으로 나눌 수 없습니다.


- 0으로 나누지 않았는데도 불구하고 리턴 값이 -121255가 되는 바람에 0으로 나눈

  것으로 처리된다.



블로그 이미지

필로그래머

,