python
게으른 예외처리는 독이 될 수도 있다.
게으른 the lazy
2024. 5. 17. 12:04
수치해석 중간고사에 grading 함수 작성 문제를 출제했다. 그리고 assert를 이용해서 채점 코드를 만들었다.
그리고 문제가 발생했다.
학생은 분명히 잘 풀었는데 실패라고 뜬다.
리스트를 수정하는 문제였는데, 나의 의도는 새로운 리스트를 만드는 것이었으나, 입력 리스트를 그대로 수정해서 반환하도록 제출한 학생이 있었다. 리스트 복사본이 문제인가 싶어서 온갖 수정을 가해봤으나 여전히 해결되지 않는다.
값을 하나하나 비교해보아도 분명히 문제가 없는데 자꾸 실패라고 뜬다.
한 시간을 삽질한 끝에 문제를 찾았다.
numpy가 import 되지 않았었다.(...)
에러는 NameError였는데 Exception을 대충 썼더니 엉뚱한 결과를 보여주던 것이었다. 예외처리를 성실하게 하지 않으면 독이 될 수 있음을 깨달은 순간이었다.
코드는 아래와 같이 수정했다.
- 게으른