가게에서 손님한테 과자주문을 받는다고 할 때
가지고 있는 수량보다 주문 수량이 많으면 주문을 못받는 예외처리를
나만의 예외처리 클래스를 구현하여 만들어보자
public void order(int jumunsu) throws JangolackException {
if(jango < jumunsu) {
//***특정에러메시지를 전달한다***
throw new JangolackException(">> " + prodName +"은 잔고가 "
+ jango +"개 인데 주문량이 "+ jumunsu
+"개라서 잔고 부족으로 주문이 불가합니다.<<");
}
else {
jango -= jumunsu;
System.out.println(prodName + "제품을" + jumunsu + "개 주문하셨습니다");
}
}
예외처리 클래스를 만드는 방법은 Exception 클래스를 상속하는 것이다.
이곳에서 기본생성자를 활용한 JangolackException 예외처리 방법과
오버로딩을 통해 파라미터가 있는 JangolackException 예외처리 방법이 있다.
앞선 order 메소드에서는 String 파라미터를 넘겨주는 예외처리 방법이다.
public class JangolackException extends Exception {
static final long serialVersionUID = 1L;
// 1. 기본생성자를 활용한 예외처리
public JangolackException() {
super(">> 잔고량이 주문량보다 적으므로 주문이 불가합니다. <<");
}
// 2. String 에러메시지 파라미터를 받는 예외처리 방법
public JangolackException(String errMsg) {
super(errMsg); // Super를 통해 부모클래스인 Exception을 활용
}
}
throw new JangolackException(">> " + prodName +"은 잔고가 "
+ jango +"개 인데 주문량이 "+ jumunsu
+"개라서 잔고 부족으로 주문이 불가합니다.<<");
이처럼 ArraysIndexOutOfBoundsException , ArithmeticException , NuberFormatException 등의 기본 예외처리 말고도
자신만의 예외처리 클래스를 구현하여 활용할 수 있다.