try-except 를 사용한 인자 전달 테스트
이 단계에서는 함수에 인수를 전달할 때 발생할 수 있는 잠재적인 오류를 처리하기 위해 try-except 블록을 사용하는 방법을 배우게 됩니다. 이는 사용자 입력이나 외부 데이터를 처리할 때 특히 중요하며, 데이터 유형이나 형식이 함수가 예상하는 것과 다를 수 있습니다.
try-except를 사용하여 오류 처리를 포함하도록 my_function.py 스크립트를 수정해 보겠습니다. 잘못된 인수로 add_numbers 함수를 호출하고 결과 TypeError를 잡으려고 시도합니다.
VS Code 편집기를 사용하여 ~/project 디렉토리에서 my_function.py 파일을 열고 다음과 같이 수정합니다.
## filename: ~/project/my_function.py
import inspect
def add_numbers(x: int, y: int = 10) -> int:
"""This function adds two numbers and returns the result."""
return x + y
try:
result = add_numbers("hello", 5)
print(f"Result: {result}")
except TypeError as e:
print(f"Error: {e}")
try:
result = add_numbers(5, "world")
print(f"Result: {result}")
except TypeError as e:
print(f"Error: {e}")
try:
result = add_numbers(5, 5)
print(f"Result: {result}")
except TypeError as e:
print(f"Error: {e}")
이 수정된 스크립트에서:
add_numbers에 대한 호출을 try-except 블록으로 묶습니다.
- 첫 번째 인수로 문자열을, 두 번째 인수로 정수를 사용하여
add_numbers를 호출하려고 시도합니다.
- 첫 번째 인수로 정수를, 두 번째 인수로 문자열을 사용하여
add_numbers를 호출하려고 시도합니다.
- 두 개의 정수를 인수로 사용하여
add_numbers를 호출하려고 시도합니다.
TypeError가 발생하면 (정수 대신 문자열을 전달할 때 발생함) 예외를 잡고 오류 메시지를 출력합니다.
TypeError가 발생하지 않으면 함수 호출의 결과를 출력합니다.
이제 python 명령을 사용하여 스크립트를 실행합니다.
python ~/project/my_function.py
다음과 같은 출력을 볼 수 있습니다.
Error: unsupported operand type(s) for +: 'str' and 'int'
Error: unsupported operand type(s) for +: 'int' and 'str'
Result: 10
이 출력은 try-except 블록을 사용하여 잘못된 인수를 함수에 전달할 때 발생하는 오류를 정상적으로 처리하는 방법을 보여줍니다. add_numbers에 대한 처음 두 번의 호출은 TypeError 예외를 발생시키며, 이는 except 블록에서 잡혀 처리됩니다. 두 개의 정수를 사용하여 add_numbers를 세 번째로 호출하면 성공적으로 실행되고 결과가 출력됩니다.
try-except 블록을 사용하는 것은 견고하고 신뢰할 수 있는 코드를 작성하기 위한 모범 사례입니다. 잠재적인 오류를 예상하고 프로그램이 충돌하지 않도록 처리할 수 있습니다.