파이썬에서는 개발자가 직접 에러(예외)를 정의할 수 있습니다.
이렇게 만든 사용자 정의 예외(Custom Exception)는
특정 상황에서 의도적으로 예외를 발생시키고 처리하는 데 유용합니다.
✅ 사용자 정의 예외 클래스 만들기
기본 구조
class MyError(Exception): # Exception을 상속받음
pass
Exception
클래스를 상속받아 새 예외 클래스를 만듭니다.
- 보통은
pass
만 써도 되고, 필요하면 추가 로직도 구현 가능합니다.
✅ 예시 1: 가장 간단한 사용자 예외
class MyError(Exception):
pass
def check_number(x):
if x < 0:
raise MyError("0보다 작을 수 없습니다.")
try:
check_number(-3)
except MyError as e:
print("사용자 정의 예외 발생:", e)
출력: 사용자 정의 예외 발생: 0보다 작을 수 없습니다.
✅ 예시 2: 생성자(__init__
) 오버라이딩
class MyError(Exception):
def __init__(self, message):
self.message = message
def __str__(self):
return f"MyError: {self.message}"
raise MyError("이건 내가 만든 에러야!")
출력: MyError: 이건 내가 만든 에러야!
✅ 언제 사용하면 좋은가?
상황 | 예시 |
사용자 입력 값이 유효하지 않을 때 | raise InvalidInputError |
파일이나 네트워크 상태가 비정상일 때 | raise CustomConnectionError |
비즈니스 로직 에러 처리 | raise OutOfStockError , PermissionDeniedError |
✅ 요약
항목 | 설명 |
정의 방법 | class 에러이름(Exception): |
동작 방식 | raise 로 예외 발생, try-except 로 처리 |
장점 | 의미 있는 예외 처리 가능, 가독성 향상 |
Share article