[파이썬] 함수에서 예외 발생과 처리 방법과 예제

함수 내에서 예외(Exception)를 발생시키고 처리하는 방법에 대한 예제를 제공하겠습니다. 함수 내에서 예외를 발생시키는 것은 raise 키워드를 사용하여 가능하며, 예외를 처리하기 위해 tryexcept 블록을 사용합니다.

예제: 함수 내에서 예외 발생과 처리

def divide_numbers(x, y):
    try:
        result = x / y
    except ZeroDivisionError:
        # 0으로 나누는 경우 예외 처리
        print("오류: 0으로 나눌 수 없습니다.")
        result = None  # 오류가 발생한 경우 결과를 None으로 설정
    except TypeError:
        # 잘못된 데이터 형식을 사용하는 경우 예외 처리
        print("오류: 잘못된 데이터 형식입니다.")
        result = None
    return result

# 함수 호출과 예외 처리
result1 = divide_numbers(10, 2)
print("결과 1:", result1)  # 출력: 5.0

result2 = divide_numbers(5, 0)
print("결과 2:", result2)  # 출력: None, 예외 메시지 출력

result3 = divide_numbers("abc", 2)
print("결과 3:", result3)  # 출력: None, 예외 메시지 출력

이 코드에서 divide_numbers 함수는 두 숫자를 나누려 시도하고, try 블록 내에서 예외를 처리합니다. ZeroDivisionErrorTypeError 예외를 처리하고, 예외가 발생한 경우 메시지를 출력하고 결과를 None으로 설정합니다. 함수를 호출할 때 다양한 상황에 따라 예외가 발생하고 이를 처리합니다.

함수 내에서 예외를 처리하면 호출하는 쪽에서는 함수가 예외를 발생시켰는지 여부를 알 필요가 없으며, 안정적으로 처리할 수 있습니다.