PYTHON · 예외처리
warnings 모듈
warnings로 경고를 발생시키고 관리합니다. 에러와 달리 프로그램을 중단하지 않습니다.
예외처리중급warnings경고DeprecationWarning필터
핵심 설명
warnings로 경고를 발생시키고 관리합니다. 에러와 달리 프로그램을 중단하지 않습니다.
Python code
import warnings
# 경고 발생
def deprecated_func():
warnings.warn(
"이 함수는 v2.0에서 제거됩니다. new_func()를 사용하세요.",
DeprecationWarning,
stacklevel=2
)
return "레거시 결과"
# 커스텀 경고 클래스
class PerformanceWarning(UserWarning):
pass
def slow_query(query: str):
warnings.warn(
f"느린 쿼리 감지: {query[:50]}",
PerformanceWarning,
stacklevel=2
)
return []
# 경고 필터 제어
warnings.filterwarnings("always") # 모든 경고 표시
result = deprecated_func()
print(f"결과: {result}")
warnings.filterwarnings("error", category=DeprecationWarning)
try:
deprecated_func() # 경고가 에러로 변환됨
except DeprecationWarning as e:
print(f"경고→에러: {e}")
# 특정 경고 무시
warnings.filterwarnings("ignore", category=PerformanceWarning)
slow_query("SELECT * FROM huge_table")
print("경고 무시됨")학습 팁
stacklevel=2를 설정하면 경고가 호출한 코드 위치를 가리킵니다.
주의할 점
warnings.filterwarnings("error")를 설정한 상태에서 경고를 발생시키면 예외가 발생하므로 주의하세요.
자주 묻는 질문
warnings 모듈란 무엇인가요?
warnings 로 경고를 발생시키고 관리합니다. 에러와 달리 프로그램을 중단하지 않습니다.
warnings 모듈 학습 시 주의할 점은 무엇인가요?
warnings.filterwarnings("error") 를 설정한 상태에서 경고를 발생시키면 예외가 발생하므로 주의하세요.
Continue Learning
Python 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.