사용자 정의 Exception
- Exception 클래스를 상속 받아 정의한 checked Exception
- 반드시 오류를 처리 해야만 하는 Exception
- 예외 처리하지 않으면 컴파일 오류를 발생 시킨다.
- RuntimeException 클래스를 상속 받아 정의한 unChecked Exception
- 예외 처리하지 않아도 컴파일 시에는 오류를 발생시키지 않는다.
RuntimeException을 상속받은 BizException객체
public class BizException extends RuntimeException {
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();
}
}
}
실행결과
비지니스 로직이 시작합니다.
비지니스 로직이 종료됩니다.
비지니스 로직이 시작합니다.
javaStudy.BizException: 매개변수 i는 0이상이어야 합니다.
at javaStudy.BizService.bizMethod(BizService.java:7)
at javaStudy.BizExam.main(BizExam.java:9)
'공부 STUDY > JAVA' 카테고리의 다른 글
[JAVA] java.lang 패키지/오토박싱 (0) | 2023.01.15 |
---|---|
[JAVA] Object 클래스, 오버라이딩 (0) | 2023.01.15 |
[JAVA] 예외처리( exception handing ) -(2) (0) | 2023.01.15 |
[JAVA] 내부클래스( inner class ), 익명클래스( anonymous class ) (0) | 2023.01.15 |
[JAVA] 인터페이스 (interface) (0) | 2023.01.15 |