파이썬/기초 프로그래밍

raise와 KeyError 간단 정리 & 예제

Data Jun 2025. 6. 6. 10:41

프로그래밍을 하다 보면 예외 상황을 처리하는 것이 매우 중요합니다. Python에서는 raise 문을 사용해 직접 예외를 발생시킬 수 있고, 그중 KeyError는 딕셔너리나 데이터프레임에서 존재하지 않는 키나 컬럼을 접근하려 할 때 자주 발생합니다.

이번 글에서는 raise와 KeyError가 어떤 역할을 하는지, 그리고 어떻게 활용할 수 있는지를 간단한 예제와 함께 소개합니다.

 

raise란?

raise는 프로그래머가 의도적으로 예외를 발생시키는 문법입니다. 조건에 맞지 않거나 잘못된 값이 들어왔을 때, 프로그램의 흐름을 멈추고 예외 메시지를 던질 수 있습니다.

if age < 0:
    raise ValueError("나이는 음수가 될 수 없습니다.")

 

KeyError란?

KeyError는 존재하지 않는 키(또는 컬럼)를 딕셔너리나 판다스 데이터프레임에서 접근하려고 할 때 발생하는 오류입니다.

my_dict = {"name": "Jihyo"}

print(my_dict["age"])  # KeyError: 'age'

위 예제에서는 my_dict 안에 "age"라는 키가 없기 때문에 KeyError가 발생합니다.

 

 

raise와 KeyError를 함께 사용하는 예

직접 예외를 발생시키는 것도 가능합니다. 예를 들어, 어떤 컬럼이 데이터프레임에 존재하지 않으면 에러를 발생시키고 싶을 때 이렇게 사용할 수 있습니다:

import pandas as pd

def set_label_column(column, sample_data=None):
    if (isinstance(sample_data, pd.DataFrame) and (column not in sample_data)) or (not column):
        raise KeyError(f"'{column}' 컬럼이 데이터에 없습니다.")
    else:
        print(f"'{column}' 컬럼을 레이블로 설정했습니다.")

사용 예시:

df = pd.DataFrame({
    "name": ["A", "B"],
    "score": [80, 90]
})

set_label_column("grade", df)
# KeyError: 'grade' 컬럼이 데이터에 없습니다.

 

정리

 

마무리 팁

  • 사용자에게 명확한 에러 메시지를 전달하는 것은 디버깅과 유지보수에서 큰 도움이 됩니다.
  • 데이터 컬럼명을 다루는 경우, 항상 존재 여부를 먼저 확인하고 예외 처리로 방어 코드를 작성하는 것이 좋습니다.