본문 바로가기
프로그래밍언어/파이썬[중급]

[파이썬][중급] Chapter38. 예외 처리 심화와 사용자 정의 예외

by about_IT 2025. 5. 24.
728x90

예외 처리(Exception Handling)는 프로그램 실행 중 발생할 수 있는 오류 상황을 제어하는 방법입니다. 파이썬은 try-except 문 외에도 finally, else, 사용자 정의 예외 등 다양한 고급 기능을 제공합니다.


● 예외 처리 구조 복습

try:
    result = 10 / 0
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
finally:
    print("항상 실행됨")

finally 블록은 예외 발생 여부와 관계없이 반드시 실행됩니다. else는 예외가 발생하지 않았을 때만 실행됩니다.


● 다중 예외 처리

try:
    x = int("abc")
except (ValueError, TypeError) as e:
    print(f"예외 발생: {e}")

괄호를 사용하여 여러 예외를 한 번에 처리할 수 있습니다.


● 예외 재발생 (raise)

try:
    raise ValueError("잘못된 값")
except ValueError as e:
    print("처리 중...")
    raise  # 예외 다시 발생

예외를 처리한 후 다시 외부로 전달하고 싶을 때 raise만 단독으로 사용합니다.


● 사용자 정의 예외 클래스

class MyError(Exception):
    pass

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

사용자 정의 예외는 내장 Exception 클래스를 상속받아 만들 수 있으며, 다양한 예외 상황에 맞춰 커스터마이징 가능합니다.


● 예외 메시지 커스터마이징

class CustomError(Exception):
    def __init__(self, message, code):
        self.message = message
        self.code = code
        super().__init__(f"[{code}] {message}")

에러 코드나 상세 메시지를 포함하여 더 명확한 예외 정보를 전달할 수 있습니다.


● 마무리

정교한 예외 처리는 프로그램의 안정성과 유지보수성을 높여줍니다. 특히 사용자 정의 예외를 통해 상황에 맞는 에러를 정의하고, try-except-else-finally 블록을 적절히 활용해보시기 바랍니다.

728x90