try-except를 이용한 예외 처리try-except 구문은 파이썬에서 예외 처리를 위해 사용되는 구조이다. 코드 실행 중 발생할 수 있는 오류를 미리 대비함으로써 프로그램이 갑작스럽게 종료되지 않도록 하고, 적절한 예외 처리를 통해 대응할 수 있게 한다.
try:
value = int(input('숫자를 입력하세요: '))
result = 10 / value
print(result)
except ValueError:
print("오류 발생")
except ZeroDivisionError:
print("0으로는 나눌 수 없습니다.")
이 코드는 사용자의 입력을 받아 연산을 수행하는 과정에서 발생할 수 있는 두 가지 예외를 처리하는 구조를 가지고 있다:
try 블록: 이 블록 안에 있는 코드는 실행되며, 오류가 발생하지 않을 경우 정상적으로 실행이 완료된다. 이 예시에서는 사용자가 입력한 값을 숫자로 변환하고, 그 값을 이용해 10을 나누는 연산을 수행한다.
except ValueError:: 사용자가 숫자가 아닌 값을 입력하여 int() 함수에서 오류가 발생하면, ValueError 예외가 발생하며, 이때 해당 예외를 처리하는 블록이 실행되어 "오류 발생"이라는 메시지를 출력한다.
except ZeroDivisionError:: 사용자가 0을 입력하여 0으로 나누는 연산을 시도할 경우, ZeroDivisionError가 발생하며, 이 예외를 처리하는 블록이 실행되어 "0으로는 나눌 수 없습니다."라는 메시지를 출력한다.
정상 입력 (숫자 입력):
숫자를 입력하세요: 5
2.0
잘못된 입력 (숫자가 아닌 값 입력):
숫자를 입력하세요: abc
오류 발생
0 입력 (0으로 나누기 시도):
숫자를 입력하세요: 0
0으로는 나눌 수 없습니다.
try-except 구문은 프로그램 실행 중 발생할 수 있는 예외 상황에 대응하여, 예외 발생 시에도 프로그램이 중단되지 않고 적절히 처리될 수 있도록 한다. 본 예시에서는 ValueError와 ZeroDivisionError 예외를 처리함으로써, 사용자 입력에 따른 다양한 예외 상황에 맞는 메시지를 출력하는 방식으로 구현되었다.