[JAVA] 나만의 예외처리 클래스 만들기

Jay_u·2023년 1월 26일
0

Java

목록 보기
5/8

1. 나만의 특별한 예외처리 클래스 만들기


가게에서 손님한테 과자주문을 받는다고 할 때

가지고 있는 수량보다 주문 수량이 많으면 주문을 못받는 예외처리를

나만의 예외처리 클래스를 구현하여 만들어보자

  1. Product 클래스에는 order 메소드가 구현되어 있다.
    try catch를 통해서 잔고보다 많은 주문량이 발생되면 특정 물품의 잔고가 부족하다는 에러메시지가 발생되게 하고 싶다.

	public void order(int jumunsu) throws JangolackException {
		
		if(jango < jumunsu) {
			
            //***특정에러메시지를 전달한다***
            
			throw new JangolackException(">> " + prodName +"은 잔고가 "
            + jango +"개 인데 주문량이 "+ jumunsu 
            +"개라서 잔고 부족으로 주문이 불가합니다.<<"); 
		} 

		else {
			jango -= jumunsu;
			System.out.println(prodName + "제품을" + jumunsu + "개 주문하셨습니다");
		}
	}

  1. 나만의 예외처리 클래스인 JangolackException 클래스이다.

예외처리 클래스를 만드는 방법은 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을 활용
	}
}

  1. 출력결과
    JangolackException은 파라미터로 받은 아래 String 내용을 super(errMsg)를 통해 Exception으로 넘겨 출력한다.

throw new JangolackException(">> " + prodName +"은 잔고가 "
            + jango +"개 인데 주문량이 "+ jumunsu 
            +"개라서 잔고 부족으로 주문이 불가합니다.<<"); 

이처럼 ArraysIndexOutOfBoundsException , ArithmeticException , NuberFormatException 등의 기본 예외처리 말고도

자신만의 예외처리 클래스를 구현하여 활용할 수 있다.

profile
정확한 정보를 전달할려고 노력합니다.

0개의 댓글