topic난이도 · 약 18

예외 처리 & 파일 I/O

`try/except/else/finally` · `raise` · `with open(...) as f` 컨텍스트 매니저.

#Python#예외#파일IO
왜 배우는가

예외 처리의 실행 순서(try → except → else → finally)와 파일 모드(`r/w/a/rb/wb`)가 단답·코드 추적으로 출제된다.

Python 예외 처리는 `try/except/else/finally` 4블록으로 구성된다. try는 위험 코드, except는 오류 처리, else는 오류가 없을 때만, finally항상 실행된다.

except는 구체적인 예외부터 나열. 상위 예외(Exception)를 먼저 잡으면 아래 except가 절대 실행되지 않는다.

실행 순서 — try 성공 시: try → else → finally. try 실패 시: try → (해당 except) → finally. finally는 예외가 발생해도 반드시 실행된다.

`with` 블록을 벗어나면 파일이 자동으로 닫힌다(컨텍스트 매니저). `close()`를 잊어도 안전하다.

모드의미파일 존재쓰기 위치
'r'읽기 (기본)있어야 함-
'w'쓰기 (덮어쓰기)없으면 생성처음부터
'a'이어쓰기 (append)없으면 생성끝에
'r+'읽기+쓰기있어야 함처음부터
'rb'/'wb'바이너리 모드--

예외 발생 — `raise ValueError("메시지")` 로 직접 예외를 던질 수 있다. 사용자 정의 예외는 `class MyError(Exception): pass` 형태로 만든다.

실기 드릴 5문항
code실기 드릴 · 코드 추적

다음 Python 코드의 출력은?

python
try:
    x = int("abc")
except ValueError:
    print("값 오류")
except Exception:
    print("일반 오류")
finally:
    print("끝")
code실기 드릴 · 코드 추적

다음 Python 코드의 출력은?

python
def divide(a, b):
    try:
        return a / b
    except ZeroDivisionError:
        return -1
    finally:
        print("finally")

print(divide(10, 2))
print(divide(10, 0))
edit실기 드릴 · 단답형

Python의 `try` 블록이 오류 없이 정상 종료된 경우에만 실행되는 블록은?

edit실기 드릴 · 단답형

Python에서 파일을 열 때 이어쓰기(append) 모드는 어떤 문자로 지정하는가?

check_circle실기 드릴 · OX

`with open(...)` 구문으로 파일을 열면 블록을 빠져나갈 때 자동으로 파일이 닫힌다.