호랭이 분석가

파이썬 예외 처리: try-except, else, finally 활용하기 본문

Python

파이썬 예외 처리: try-except, else, finally 활용하기

데이터호랑이 2023. 7. 31. 23:23
반응형

코딩을 하다 보면 예상치 못한 상황에 대비하여 예외 처리가 필요한 경우가 많습니다.

파이썬은 이러한 예외 상황을 처리하기 위해 

try, except, else, finally와 같은 키워드를 제공합니다.

 

1. try-except 구문

 

try와 except 구문은 예외가 발생할 가능성이 있는 코드를 감싸고,

예외가 발생했을 때 이를 처리하는 데 사용됩니다.

기본 형식은 아래와 같습니다.

 

try : 
    # 예외가 발생할 수 있는 코드
except 예외종류 as 변수 :
	# 예외 처리 코드

 

try:
    result = x / y
except ZeroDivisionError as e:
    print(f"에러 발생: {e}")

 

ZeroDivisionError는 파이썬의 내장된 예외 구문 중 하나로, 0으로 나누려 할 때 발생하는 예외입니다.

만약 y값에 0이 할당된다면 ZeroDivisionError가 출력되도록 만들어져 있습니다.

 

 

2. else 구문

 

else 구문은 try 블록에서 예외가 발생하지 않았을 때 실행할 코드를 포함합니다.

예외가 발생하지 않았을 때 특별한 처리를 해야 할 때 유용하게 사용됩니다.

기본 형식은 아래와 같습니다.

 

try:
    # 예외가 발생할 수 있는 코드
except 예외종류 as 변수:
    # 예외 처리 코드
else:
    # 예외가 발생하지 않았을 때 실행할 코드

 

try:
    result = x / y
except ZeroDivisionError as e:
    print(f"에러 발생: {e}")
else:
    print(f"나눗셈 결과: {result}")

 

y값에 0이 아닌 숫자값이 들어왔을 때 result 변수가 생성된 이후에 나눗셈 결과를 출력하는 예제입니다.

 

 

3. finally 구문

 

finally 구문은 예외 발생 여부에 관계없이 항상 실행되어야 하는 코드를 포함합니다.

파일을 닫는 등의 정리 작업을 할 때 유용하게 사용됩니다.

 

try:
    # 예외가 발생할 수 있는 코드
except 예외종류 as 변수:
    # 예외 처리 코드
finally:
    # 항상 실행되어야 하는 코드

 

아래에서는 try-except, else, finally를 모두 사용하는 예제를 보여드리겠습니다.

 

try:
    # 사용자로부터 두 개의 숫자를 입력받음
    num1 = int(input("첫 번째 숫자를 입력하세요: "))
    num2 = int(input("두 번째 숫자를 입력하세요: "))

    # 나눗셈을 수행
    result = num1 / num2

except ValueError:
    print("숫자를 올바르게 입력해주세요.")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
except Exception as e:
    print(f"알 수 없는 오류가 발생했습니다: {e}")
else:
    # 예외가 발생하지 않았을 때 실행되는 코드
    print(f"나눗셈 결과: {result}")
finally:
    # 항상 실행되는 정리 작업
    print("프로그램을 종료합니다.")

 

위 예제를 실행하면 사용자로부터 두 개의 숫자를 입력받은 후 나눗셈을 수행하거나 예외가 발생합니다.

예외에 종류에 따른 적절한 안내 메시지가 출력되거나, 정상적으로 작동 시 나눗셈 결과를 출력하며 

마지막으로 항상 실행되어야 하는 finally 구문에서 프로그램을 종료한다는 메시지가 출력됩니다.

 

추가적으로 예외 종류를 더 다양하게 처리하거나 사용자 정의 예외를 추가하여

더 복잡한 예외 처리를 구현해 볼 수도 있습니다.

 

Comments