프로그램 실행 중 예기치 못한 에러가 발생해도 프로그램이 멈추지 않도록 안전하게 포획하는 **예외 처리(Exception Handling)**를 학습합니다.
1. 예외 처리 용어 사전 (Glossary)
- Exception (예외): 프로그램 실행 중(런타임)에 발생하는 오류 상황으로, 포획하지 않으면 프로그램이 강제 종료됩니다.
try-except-else-finally:try: 에러가 발생할 수 있는 위험 코드 실행 구역.except: 예외가 발생했을 때 처리하는 구역.else: 에러 없이 정상적으로 성공했을 때만 실행되는 구역.finally: 에러 발생 여부와 상관없이 무조건 마지막에 실행되는 자원 정제 구역.
- Custom Exception: 표준
Exception클래스를 상속받아 도메인 특화 에러 상황을 명시하는 사용자 정의 클래스입니다.
2. 예외 처리 실습 코드
class OutOfStockError(Exception):
"""재고 부족 시 발생하는 커스텀 예외"""
pass
def purchase_item(stock: int, quantity: int):
if quantity > stock:
raise OutOfStockError(f"요청 수량({quantity})이 재고({stock})를 초과했습니다.")
return stock - quantity
try:
remaining = purchase_item(5, 10)
except OutOfStockError as e:
print(f"구매 실패 경고: {e}")
finally:
print("결제 프로세스가 마감되었습니다.")