checkedException
unCheckedException
클래스 이름만으로 어떤 오류가 발생했는지 알려주어 코드의 직관성을 높인다.
// Exception을 상속받은 새로운 Exception 클래스 정의
// RuntimeException을 상속받은 BizException
public class BizException extends RuntimeException{
public BizException(String msg){ // 생성자 정의
super(msg); // 부모의 생성자에게 msg 넘김
}
public BizException(Exception ex){ // 생성자 정의
super(ex); // 부모의 생성자에게 exception 넘김
}
}
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 클래스
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)