[개발] - Java/후발대

예외처리 Quiz

완벽한 장면 2023. 3. 3. 01:23

Quiz
인기가 많은 상품이 선착순으로 판매되는 온라인 쇼핑몰에서 발생할 수 있는 문제를 처리하는 프로그램을 작성하시오 

조건

  1. 발생 가능 문제의 2 가지 조건 : 상품 구매 가능 시간 상품 매진
  2. 각 문제에 대한 사용자 정의 예외 클래스 작성
  3. 에러 코드에 따른 의도적 예외 발생 및 예외 처리
  4. 모든 클래스는 하나의 파일에 정의할 것.


에러 코드에 따른 메시지

 

실행 결과

1) 에러 코드 0

2) 에러 코드 1

3) 에러 코드 2

 

Hint : 예외 메시지 출력 시 e.getMessage() 이용

 

풀이

package prac18;

// 에러코드
// Day 20에서 푼 문제이다.

// 에러 코드 0번일 때는
// 상품 구매를 완료하였습니다만 줓력하면 되고, try문 내에서만 처리하면 된다.
// 1번일 때는
// 예외 객체를 만들 때 "상품 구매 가능 시간이 아닙니다" 를 써넣고,
// 예외 처리 시에는 "상품 구매는 20시부터 가능합니다" 출력
// 2번일 때는
// 예외 객체를 만들 때 "해당 상품은 매진되었습니다."
// 예외처리 메시지는 "다음 기회에 이용해주세요" 를 써넣으면 된다.

public class Prac18 {
  public static void main(String[] args) {
    int errorCode = 0;
    // int errorCode = 1;
    // int errorCode = 2;

    try {
      if (errorCode == 0) {
        System.out.println("상품 구매를 완료하였습니다.");
      } else if (errorCode == 1) {
        throw new NotOnSaleException("상품 구매 가능 시간이 아닙니다.");
      } else if (errorCode == 2) {
        throw new SoldOutException("해당 상품은 매진 되었습니다.");
      }

    } catch (NotOnSaleException e) {
      System.out.println(e.getMessage());
      System.out.println("상품 구매는 20시부터 가능합니다.");

    } catch (SoldOutException e) {
      System.out.println(e.getMessage());
      System.out.println("다음 기회에 이용해주세요.");
    }
  }
}
class NotOnSaleException extends Exception {
  public NotOnSaleException(String message) {
    super(message);
  }
}

class SoldOutException extends Exception {

  public SoldOutException(String message) {
    super(message);
  }
}
728x90
반응형