이렇게 BizService가 가진 bizMethod를 실행할 때 제대로 된 값(5)이 들어오거나 그렇지 않은 값(-3)이 들어올 수 있겠죠.
이때 Exception이 발생하면 어떻게 처리할 수 있을까요? BizService는 RuntimeException을 상속받는 메서드를 throw하기 때문에 Exception 처리하라고 컴파일 에러를 발생시키지는 않습니다. 실행해볼까요?
실행결과
비즈니스 메서드 시작 비즈니스 메서드 종료 비즈니스 메서드 시작 javaStudy.BizException: 매개변수 i는 0 이상이어야 합니다. at javaStudy.BizService.bizMethod(BizService.java:8) at javaStudy.BizExam.main(BizExam.java:8)
실행결과 첫 번째 메서드를 수행했을 때는 별 에러 없이 실행됩니다. 하지만 -3값을 인자로 가진 두 번째 메서드를 호출했을 때 실제 메서드를 실행하는 부분에서 인자로 들어온 값이 0보다 작습니다. 그렇다면 BizException을 발생시키고 해당 메서드는 BizException을 throws시키겠죠? 그런데 main 메서드에서 예외를 처리하지 않기 때문에 해당 프로그램을 끝까지 실행하지 않고 종료합니다. 따라서 “프로그램 종료”라는 문자열을 정상적으로 출력하지 못합니다. unchecked Exception이 발생하더라도 예외를 제대로 처리하지 못하면 프로그램은 종료하므로 예외가 발생할 수 있는 상황에서는 예외 처리를 잘 해주는 것이 좋습니다.