03_파이썬(Python)

파이썬(Python) 기본 문법: 예외 처리 (try-except)

tothebest 2025. 8. 23. 16:07
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