@Test
@DisplayName("숫자가 아닌 입력에 대한 예외처리")
void Not_Number() {
assertThatThrownBy(() -> {
Integer.parseInt("text");
}).isInstanceOf(IllegalArgumentException.class);
}
기대하기로는 해당 테스트 코드가 실패하기를 바랐다. NumberFormatException
이 발생하는게 맞다고 생각했기 때문이다.
하지만 초록불이 떴고, 테스트가 통과해버렸다. NumberFormatException
이 IllegalException
을 상속받아서 통과한다고 유추할 수 있었지만 자세히 알아보기 위해서 찾아봤다. 찾아보니 실제로 extends를 통해 상속받고 있었다.
Exception의 구조에 대해 궁금하여 조금더 조사를 해봤다. 전부다 외우지는 못하더라도 자주 쓰는 예외에 대해서는 알고 있으면 좋을 것 같다.