프로그래밍을 하다 보면 예외 상황에 대비해 코드를 작성해야 하는 경우가 많습니다. 이때 조건문을 활용하여 예외 테스트를 수행할 수 있습니다. 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
를 발생시킵니다. 따라서 음수를 입력할 경우 해당 상황을 처리할 수 있습니다.
조건문을 활용한 예외 테스트는 코드의 안정성을 높이고 예외 상황을 처리하는데 도움을 줍니다. 적절한 조건문을 사용하여 예외 상황에 대비하는 습관을 가지는 것이 좋습니다.