← 2026 2학년 프로그래밍

예외 처리

Exception Handling

프로그램이 항상 예상대로 실행된다는 가정에서 벗어나, 실행 중 발생할 수 있는 예외를 확인하고 프로그램이 중단되지 않도록 필요한 상황을 처리한다.

Colab에서 열기 → · Notebook 파일 보기 →

수업에서 확인한 예외

예외확인한 상황
IndexError리스트에 없는 위치에 접근하는 경우
ValueError입력값을 원하는 자료형으로 변환할 수 없는 경우
ZeroDivisionError0으로 나누는 계산을 하는 경우
FileNotFoundError읽기 모드로 열려는 파일이 존재하지 않는 경우

기본 구조

IEEE 754에서 실제로 사용한 ValueError

float()로 바꿀 수 없는 문자열이 입력되면 ValueError가 발생한다. 이때 프로그램을 끝내지 않고 안내 문장을 출력한 뒤 다시 입력받는다.

텍스트 RPG에서 실제로 사용한 FileNotFoundError

저장 파일을 r 모드로 읽으려고 했는데 파일이 없으면 FileNotFoundError가 발생한다. 이 코드는 프로그램을 중단하는 대신 False를 반환하고, 호출한 쪽에서 그 값을 이용해 “저장 파일이 없습니다.”라는 흐름으로 이어지게 한다.

파일 모드와 예외

모드파일이 없을 때 / 있을 때
r없는 파일을 읽으려 하면 FileNotFoundError가 발생한다.
w없으면 새 파일을 만들고, 있으면 기존 내용을 지우고 새로 쓴다.
a없으면 새 파일을 만들고, 있으면 기존 내용 뒤에 이어 쓴다.

연습

  1. 위 RPG 코드에서 except FileNotFoundError: 부분을 제거하면 저장 파일이 없을 때 프로그램 흐름이 어떻게 달라질지 설명해 보자.
  2. SaveManager.load()가 False를 반환한 뒤 Game.process_command()에서 어떤 조건으로 이어지는지 찾아보자.
  3. 파일을 처음 만드는 상황에서 r, w, a 중 어떤 모드를 사용할 수 있는지 비교해 보자.

관련 Coding Practice

파일·예외 문제 풀기 →

⌂ Home