[Python] Custom Exception

KangHo Lee's avatar
May 30, 2025
[Python] Custom Exception
파이썬에서는 개발자가 직접 에러(예외)를 정의할 수 있습니다.
이렇게 만든 사용자 정의 예외(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

devleekangho