안녕하세요, 361p 8번 문제 관련 질문입니다.
해당 문제에서 '오류가 발생하는 라인 번호'를 묻고 있는데, 해설과 실습 결과 간 의도가 헷갈려 문의드립니다.
1. 6번 라인: 0으로 나누는 시점이므로 디버깅 시 실제 예외가 발생하는 위치
2. 9번 라인: 해설상 잘못된 catch문 예외 타입(NumberFormatException)을 수정해야 하는 위치
출제 의도가 실제 런타임 오류가 발생하는 위치(6번)를 찾는 것인지, 잘못 작성된 예외 처리 코드(9번)를 찾는 것인지 확인해 주시면 감사하겠습니다.
안녕하세요. 길벗 수험서 운영팀입니다.
Line 6의 ‘d = a / b’에서 'b = 0'이므로 'a / b', 즉 '32 / 0'을 수행할 때 ArithmeticException 오류가 발생하는데, Line 9에서는 NumberFormatException으로 되어 있어 이 예외를 잡지 못합니다.
그러므로 오류가 실제 발생하는 Lin은 6이고, 이 오류를 수정해야 하는 Line은 9입니다.
출제 의도는 실제 런타임 오류가 발생하는 위치를 묻는 것이므로 Line 6이 정답입니다.
다만 문의주신 것처럼 Line 6과 9를 혼동할 여지가 있어, 헷갈릴 수 있습니다.
이 문제는 좀더 명확한 문제로 교재 개정 시 수정하도록 하겠습니다.
공부하는데 있어 불편함을 드려 정말 죄송합니다.
행복한 하루되세요.^^
-
관리자2026-08-25 09:39:03
안녕하세요. 길벗 수험서 운영팀입니다.
Line 6의 ‘d = a / b’에서 'b = 0'이므로 'a / b', 즉 '32 / 0'을 수행할 때 ArithmeticException 오류가 발생하는데, Line 9에서는 NumberFormatException으로 되어 있어 이 예외를 잡지 못합니다.
그러므로 오류가 실제 발생하는 Lin은 6이고, 이 오류를 수정해야 하는 Line은 9입니다.
출제 의도는 실제 런타임 오류가 발생하는 위치를 묻는 것이므로 Line 6이 정답입니다.
다만 문의주신 것처럼 Line 6과 9를 혼동할 여지가 있어, 헷갈릴 수 있습니다.
이 문제는 좀더 명확한 문제로 교재 개정 시 수정하도록 하겠습니다.
공부하는데 있어 불편함을 드려 정말 죄송합니다.
행복한 하루되세요.^^