해결됨
나도코딩의 자바 기본편 - 풀코스 (20시간)
퀴즈 11을 if~else 대신 swtich문으로 풀어도 똑같은 결과가 나오는데, 취사선택의 문제일까요??
package chap_11;
public class _Quiz_11 {
public static void main(String[] args) {
//todo 사용자 정의 예외 클래스(extends Exception을 통해 가능)
//todo 예외 객체 생성 메시지가 2개인 것을 보아, 클래스도 2개를 만들어야 할듯...?
//todo 경우의 수가 3가지니까 if~else문으로 작성
int errorCode = 0;
try {
switch (errorCode) {
case 0:
System.out.println("상품 구매를 완료하였습니다.");
break;
case 1:
throw new NotOnSaleException("상품 구매 가능 시간이 아닙니다.");
case 2:
throw new SoldOutException("해당 상품은 매진되었습니다.");
default:
throw new Exception("이외의 에러코드는 여기서 처리하였습니다.");
}
} catch (NotOnSaleException e) {
System.out.println(e.getMessage());
System.out.println("상품 구매는 20시부터 가능합니다.");
} catch (SoldOutException e) {
System.out.println(e.getMessage());
System.out.println("다음 기회에 이용해주세요.");
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
class NotOnSaleException extends Exception {
public NotOnSaleException(String msg) {
super(msg);
}
}
class SoldOutException extends Exception {
public SoldOutException(String msg) {
super(msg);
}
}위의 errorCode를 각각넣으면 퀴즈의 요구사항대로 정상적으로 출력이 됩니다. 또한, int errorCode = 99; 같이 default에 해당하는 다른 값을 넣어도 정상적으로 다음과 같이 출력이 되구요:제목과 같이 if~else문이나 swtich문으로 선택하는 것은 개인의 자유인가요? 아니면 특정 상황에 따라 다른가요?