[Java] 사용자 정의 Exception

zizi·2023년 5월 4일
0

Java

목록 보기
25/27

public class 클래스명 extends Exception { }
클래스의 이름만으로 어떤 오류를 발생시켰는지 알려주어 코드 직관성 높임.

  • checked Exception
    : Exception 클래스를 상속 받아 정의함

    • 반드시 오류를 처리 해야만 하는 Exception
    • 예외 처리하지 않으면 컴파일 오류를 발생 시킨다.
  • unChecked Exception
    : RuntimeException 클래스를 상속 받아 정의함

    • 예외 처리하지 않아도 컴파일 시에는 오류를 발생시키지 않는다.

RuntimeException 상속받아 클래스 생성하기

  • RuntimeException을 상속받은 BizException객체
    public class BizException extends RuntimeException {
    //Exception 객체에서는 생성자만 지정해주면 된다.
        public BizException(String msg){	//메시지를 가지고들여오는 생성자
            super(msg);	//부모에게 보내줌
        }       
        public BizException(Exception ex){	//실제 발생할 인셉션을 담은 생성자
            super(ex);	//부모에게 보내줌
        }
    }
  • BizService클래스는 업무를 처리하는 메소드를 가지고 있다고 가정한다.
    public class BizService {
        public void bizMethod(int i)throws BizException{
            System.out.println("비지니스 로직이 시작합니다.");
            if(i < 0){
                throw new BizException("매개변수 i는 0이상이어야 합니다.");
            }
            System.out.println("비지니스 로직이 종료됩니다.");
        }
    }
  • 앞에서 만든 BizService를 이용하는 BizExam클래스
    • 매개변수 값을 -1을 넘길때는 Exception이 발생하기 때문에 try catch블록으로 처리한다.
    public class BizExam {  
        public static void main(String[] args) {
            BizService biz = new BizService();
            biz.bizMethod(5);
            try{
                biz.bizMethod(-3);
            }catch(Exception ex){
                ex.printStackTrace();	//Exception이 발생한 이유와 위치가 어딘지 전체적인 단계를 다 출력.
            }
        }
    }

실행 결과

비지니스 로직이 시작합니다.
비지니스 로직이 종료됩니다.
비지니스 로직이 시작합니다.
javaStudy.BizException: 매개변수 i는 0이상이어야 합니다.
at javaStudy.BizService.bizMethod(BizService.java:7)
at javaStudy.BizExam.main(BizExam.java:9)

profile
좋았다면 추억이고 나빴다면 경험이다.🍀

0개의 댓글

관련 채용 정보