본문 바로가기
프로그래밍

파이썬 기초 강의 1-9: 예외 처리와 디버깅

by 코드금융 2025. 1. 17.
728x90
반응형

 

 

Python 기초 강의 1-9: 예외 처리와 디버깅

오류를 예방하고 디버깅하는 방법 배우기

1. 예외 처리란?

예외(Exception)는 프로그램 실행 중에 발생하는 오류입니다. 예외 처리를 통해 프로그램이 오류로 인해 강제로 종료되지 않도록 하고, 오류를 적절히 처리할 수 있습니다.

2. try-except 구조

try-except 구조를 사용하면 오류를 처리할 수 있습니다.

# 예외 처리 기본 구조
try:
    num = int(input("숫자를 입력하세요: "))
    print(f"입력한 숫자는 {num}입니다.")
except ValueError:
    print("올바른 숫자를 입력해주세요.")
        

위 코드는 사용자가 숫자가 아닌 값을 입력했을 때, 프로그램이 종료되지 않고 오류 메시지를 출력합니다.

3. 여러 예외 처리

다양한 오류를 처리하기 위해 여러 except 블록을 사용할 수 있습니다.

# 여러 예외 처리
try:
    x = int(input("첫 번째 숫자를 입력하세요: "))
    y = int(input("두 번째 숫자를 입력하세요: "))
    print(x / y)
except ValueError:
    print("숫자를 입력해주세요.")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
        

4. else와 finally

elsefinally를 사용해 예외 처리 흐름을 더 세부적으로 제어할 수 있습니다.

# else와 finally 사용
try:
    file = open("example.txt", "r")
    content = file.read()
    print(content)
except FileNotFoundError:
    print("파일을 찾을 수 없습니다.")
else:
    print("파일을 성공적으로 읽었습니다.")
finally:
    file.close()
    print("파일 작업이 종료되었습니다.")
        

5. 예외 직접 발생시키기

필요에 따라 raise 키워드를 사용해 예외를 직접 발생시킬 수 있습니다.

# 예외 직접 발생
def divide(x, y):
    if y == 0:
        raise ZeroDivisionError("0으로 나눌 수 없습니다.")
    return x / y

try:
    result = divide(10, 0)
    print(result)
except ZeroDivisionError as e:
    print(e)
        

6. 디버깅 방법

Python에서 디버깅을 효과적으로 수행하기 위한 몇 가지 팁을 소개합니다:

  • print 디버깅: 코드 실행 흐름을 파악하기 위해 변수 값을 출력합니다.
  • pdb 모듈: Python 내장 디버거로 실행 중 코드를 중단하고 상태를 점검합니다.
# pdb 모듈 사용 예제
import pdb

def calculate(a, b):
    pdb.set_trace()  # 디버깅 시작
    return a + b

result = calculate(5, 10)
print(result)
        

7. 실습: 안전한 계산기

사용자가 입력한 값을 안전하게 계산하는 프로그램을 작성해 봅시다.

# 안전한 계산기
def safe_calculator():
    try:
        x = int(input("첫 번째 숫자를 입력하세요: "))
        y = int(input("두 번째 숫자를 입력하세요: "))
        operation = input("연산을 입력하세요 (+, -, *, /): ")

        if operation == "+":
            print(f"결과: {x + y}")
        elif operation == "-":
            print(f"결과: {x - y}")
        elif operation == "*":
            print(f"결과: {x * y}")
        elif operation == "/":
            print(f"결과: {x / y}")
        else:
            print("올바른 연산을 입력해주세요.")
    except ValueError:
        print("숫자를 입력해주세요.")
    except ZeroDivisionError:
        print("0으로 나눌 수 없습니다.")

safe_calculator()
        

8. 요약

이번 강의에서는 Python 예외 처리의 기본 구조와 디버깅 방법을 배웠습니다. try-except를 사용해 오류를 처리하고, pdb 모듈로 디버깅을 수행할 수 있습니다.

다음 강의 예고

1-10 강의: Python의 객체 지향 프로그래밍(OOP)을 학습합니다!

728x90
반응형