본문 바로가기

👩‍💻 BackEnd/☕️ 자바 [Java]

[JAVA] 사용자 정의 Exception

사용자 정의 Exception 

- Exception 클래스를 상속받아 정의한 checked Exception

: 이는 반드시 오류 처리를 해야만하는 Exception 

: 예외처리를 하지 않으면 컴파일 오류를 발생시킴.

 

- RuntimeException 클래스를 상속받아 정의한 unCheckedException

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

 

* 하지만, 모든 오류 처리를 해 놓는 것이 프로그램이 원활하게 돌아가게 하기 위해서는 매우 중요하다! 

RuntimeException을 상속받은 BizException객체  : unCheckedException

public class BizException extends RuntimeException {
	public BizException(String msg){
    	super(msg);
    }
}
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);   //예외 상황 0보다 작은 매개변수 
            }catch(Exception ex){
                ex.printStackTrace();
            }
        }
    }

JAVA Exception 에러 출력 

e.getMessage() : 에러의 원인을 간단하게 출력합니다.

e.toString() : 에러의 Exception 내용과 원인을 출력합니다.

e.printStackTrace() : 에러의 발생근원지를 찾아서 단계별로 에러를 출력합니다.

 

'👩‍💻 BackEnd > ☕️ 자바 [Java]' 카테고리의 다른 글

[JAVA] StringBuilder  (0) 2023.04.29
[JAVA] 자바 IO  (0) 2023.04.24
[JAVA] 내부클래스  (0) 2023.04.17
[JAVA] 인터페이스 default / static 예시  (0) 2023.04.17
[Java] 클래스 형변환  (0) 2023.04.17