728x90
안녕하세요
프로그램을 실행하다 보면 예상치 못한 오류(예외)가 발생할 수 있습니다.
예를 들어 존재하지 않는 파일을 열려고 하거나, 0으로 나누기를 하는 경우 등이 있습니다.
이때 프로그램이 바로 종료되지 않고, 예외 처리(try-except)로 문제를 안전하게 다룰 수 있습니다.
1. 기본 예외 처리
try:
x = 10 / 0
except ZeroDivisionError:
print("0으로 나눌 수 없습니다!")
실행 결과
0으로 나눌 수 없습니다!
2. 여러 예외 처리
try:
num = int("abc")
except ValueError:
print("숫자로 변환할 수 없습니다!")
실행 결과
숫자로 변환할 수 없습니다!
3. finally 구문
- 오류가 있든 없든 마지막에 반드시 실행되는 코드
- 보통 리소스 해제 (파일 닫기 등)에 사용
try:
f = open("sample.txt", "r")
content = f.read()
print(content)
except FileNotFoundError:
print("파일을 찾을 수 없습니다!")
finally:
print("실행 종료")
sample.txt가 없으면
파일을 찾을 수 없습니다!
실행 종료
4. 파일 입출력과 결합된 예제
파일이 존재하지 않을 수도 있다는 점을 고려해 안전하게 코드를 작성해봅시다.
filename = "data.txt"
try:
with open(filename, "r") as f:
content = f.read()
print("파일 내용:\n", content)
except FileNotFoundError:
print(f"'{filename}' 파일이 존재하지 않습니다. 새로 생성합니다.")
with open(filename, "w") as f:
f.write("새 파일이 생성되었습니다.\n")
실행 시 data.txt가 없으면 파일을 새로 만들고, 있으면 내용을 출력합니다.
5. 예외 객체 사용하기
예외 정보를 출력할 수도 있습니다.
try:
value = int("abc")
except ValueError as e:
print("에러 메시지:", e)
실행 결과
에러 메시지: invalid literal for int() with base 10: 'abc'
▣ 정리
- try-except로 예외 상황을 안전하게 처리할 수 있습니다.
- finally는 예외 발생 여부와 관계없이 항상 실행됩니다.
- 파일 입출력 시 FileNotFoundError 같은 예외를 처리해두면 안정적인 코드 작성이 가능합니다.
다음 글에서는 객체지향 프로그래밍 (클래스와 객체)로 넘어가겠습니다.
감사합니다.
728x90
'03_파이썬(Python)' 카테고리의 다른 글
| 파이썬(Python) 기본 문법: 객체지향 프로그래밍 — 은행 계좌 만들기 (0) | 2025.08.23 |
|---|---|
| 파이썬(Python) 기본 문법: 파일 입출력 (File I/O) (0) | 2025.08.23 |
| 파이썬(Python) 기본 문법: 모듈(Module)과 패키지(Package) (0) | 2025.08.23 |
| 파이썬(Python) 기본 문법: 함수(Function) (0) | 2025.08.23 |
| 파이썬(Python) 기본 문법: 제어문 (if, for, while) (0) | 2025.08.23 |