[파이썬] 조건문을 활용한 예외 테스트

프로그래밍을 하다 보면 예외 상황에 대비해 코드를 작성해야 하는 경우가 많습니다. 이때 조건문을 활용하여 예외 테스트를 수행할 수 있습니다. Python은 다양한 조건문을 제공하므로, 이를 활용하여 예외 상황을 검증할 수 있습니다.

1. if 문을 사용한 예외 테스트

if 문을 사용하여 특정 조건이 만족되지 않을 경우 예외를 처리할 수 있습니다. 예를 들어, 사용자로부터 입력받은 값을 검증하는 경우를 생각해보겠습니다.

user_input = input("숫자를 입력하세요: ")
number = int(user_input)

if number < 0:
    raise ValueError("음수는 입력할 수 없습니다.")
else:
    print("입력된 숫자:", number)

위 예제에서 사용자로부터 입력받은 값을 number 변수에 저장합니다. 그리고 if 문을 사용하여 number가 음수인 경우 ValueError를 발생시킵니다. 이렇게 함으로써 음수를 입력받았을 때 해당 상황을 처리할 수 있습니다.

2. try-except 문을 사용한 예외 테스트

try-except 문을 사용하여 예외를 처리할 수도 있습니다. try 블록에는 예외가 발생할 수 있는 코드를 작성하고, except 블록에는 예외를 처리하는 코드를 작성합니다.

def divide_numbers(a, b):
    try:
        result = a / b
        return result
    except ZeroDivisionError:
        print("0으로 나눌 수 없습니다.")
    except TypeError:
        print("숫자만 입력해주세요.")

print(divide_numbers(10, 5))  # 출력: 2.0
print(divide_numbers(10, 0))  # 출력: 0으로 나눌 수 없습니다.
print(divide_numbers(10, 'a'))  # 출력: 숫자만 입력해주세요.

위 예제에서 divide_numbers 함수는 두 개의 숫자를 나누는 기능을 수행합니다. try 블록에서는 ZeroDivisionError 예외와 TypeError 예외를 처리하도록 합니다. 따라서 0으로 나누는 경우와 숫자가 아닌 값을 입력하는 경우에 대해 예외 처리를 수행할 수 있습니다.

3. assert 문을 사용한 예외 테스트

assert 문은 주어진 조건이 True가 아닐 경우 예외를 발생시킵니다. 이를 사용하여 특정 조건을 검증하고, 조건이 만족되지 않을 경우 예외를 처리할 수 있습니다.

def square_root(num):
    assert num >= 0, "음수는 입력할 수 없습니다."
    return num ** 0.5

print(square_root(16))  # 출력: 4.0
print(square_root(-10))  # AssertionError: 음수는 입력할 수 없습니다.

위 예제에서 square_root 함수는 주어진 숫자의 제곱근을 계산하는 기능을 수행합니다. assert 문을 사용하여 입력한 숫자가 음수인 경우 AssertionError를 발생시킵니다. 따라서 음수를 입력할 경우 해당 상황을 처리할 수 있습니다.

조건문을 활용한 예외 테스트는 코드의 안정성을 높이고 예외 상황을 처리하는데 도움을 줍니다. 적절한 조건문을 사용하여 예외 상황에 대비하는 습관을 가지는 것이 좋습니다.