검색
검색
공개 노트 검색
회원가입로그인
파이썬 기초 완전정복

에러 처리 및 디버깅

6장: 오류 처리와 디버깅

파이썬을 사용하다 보면 프로그램이 예상치 못한 상황에서 정지되거나 오류를 발생시킬 수 있습니다. 이는 개발자의 오타, 잘못된 코드 설계, 혹은 외부적인 문제로 인해 발생할 수도 있습니다. 이 장에서는 이러한 오류를 안전하고 효율적으로 처리하는 방법과, 문제를 분석하고 해결하기 위한 디버깅 기법을 배우겠습니다.

오류 처리: 예외(Exception)와 그 대응

프로그래밍에서는 예외나 오류(Exception)가 발생하는 것은 흔한 일입니다. 이를 대비하여 파이썬에는 try-except-else-finally 구조를 사용하여 프로그램이 예외 상황에서도 정상적으로 동작할 수 있도록 설계할 수 있습니다.

기본 예제: try와 except

다음은 기본 구조의 예제입니다:

try:
    num = int(input("숫자를 입력하세요: "))
    print(f"입력한 숫자는 {num}입니다.")
except ValueError:
    print("올바른 숫자를 입력해주세요.")

위 코드에서 사용자가 숫자가 아닌 값을 입력했을 경우 프로그램이 종료되지 않고 오류를 처리하고 메시지를 출력합니다.

finally와 else

finally는 예외 여부에 관계 없이 항상 실행되는 코드를 작성할 때 사용하며, else는 예외가 발생하지 않았을 때 실행됩니다:

try:
    num = int(input("숫자를 입력하세요: "))
except ValueError:
    print("잘못된 입력!")
else:
    print(f"입력한 숫자는 {num}입니다.")
finally:
    print("프로그램 종료.")

여러 예외 처리

다양한 예외를 처리하기 위해 여러 except 블록을 사용할 수 있습니다:

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

디버깅 기법

디버깅은 코드에서 오류를 찾아 수정하는 과정을 말합니다. 파이썬에서는 몇 가지 유용한 도구를 제공합니다.

logging 모듈

디버깅 중 발생한 사항을 기록할 수 있는 logging 모듈을 사용하면 디버깅이 용이합니다.

import logging

logging.basicConfig(level=logging.DEBUG)
logging.debug("디버깅 단계")
logging.info("정보")
logging.warning("경고")
logging.error("에러")
logging.critical("심각한 문제")

pdb를 활용한 디버깅

파이썬 기본 디버거인 pdb를 사용하여 문제를 찾아낼 수 있습니다:

import pdb

def buggy_function():
    x = [1, 2, 3]
    pdb.set_trace()
    return x[3]
buggy_function()

이 코드는 디버거를 호출하여 코드 실행의 특정 지점에서 값을 확인하고 분석할 수 있도록 합니다.

결론

오류 처리와 디버깅은 프로그래밍의 필수 요소입니다. 효과적인 예외 처리를 통해 코드의 안정성을 높이고, 디버깅 기법을 통해 발생한 문제를 분석하여 품질 높은 프로그램을 작성할 수 있습니다. 앞으로 더 많은 문제를 접하며 이를 해결하는 과정을 통해 컴퓨터 프로그래밍의 재미를 느낄 수 있을 것입니다.

참고 자료


공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기