try-except
문은 파이썬에서 예외 처리를 위해 사용되는 강력한 도구입니다. try
블록 안에는 예외가 발생할 수 있는 코드를 작성하고, 예외가 발생하면 except
블록으로 이동하여 예외를 처리할 수 있습니다. 이러한 except
블록의 활용에 대해 알아보겠습니다.
기본적인 예외 처리
try:
# 예외가 발생할 수 있는 코드
result = 10 / 0 # ZeroDivisionError
except ZeroDivisionError:
# 예외 처리 코드
print("0으로 나눌 수 없습니다.")
위의 예제에서는 try
블록에서 0으로 나누는 연산을 수행하고 있습니다. 이 연산은 ZeroDivisionError
예외를 발생시킵니다. 따라서 except ZeroDivisionError
블록에서 해당 예외를 처리합니다. 이 경우에는 “0으로 나눌 수 없습니다.”라는 메시지를 출력합니다.
여러 개의 예외 처리
except
블록을 여러 번 사용하여 여러 종류의 예외를 처리할 수 있습니다.
try:
# 예외가 발생할 수 있는 코드
file = open("nonexistent.txt") # FileNotFoundError
result = 10 / 0 # ZeroDivisionError
except FileNotFoundError:
# 파일을 찾을 수 없는 경우 예외 처리 코드
print("파일을 찾을 수 없습니다.")
except ZeroDivisionError:
# 0으로 나누는 경우 예외 처리 코드
print("0으로 나눌 수 없습니다.")
위의 예제에서는 두 개의 예외를 처리하고 있습니다. FileNotFoundError
예외는 파일을 찾을 수 없는 경우 발생하며, ZeroDivisionError
예외는 0으로 나누는 경우 발생합니다. 따라서 각각에 맞는 except
블록에서 예외를 처리할 수 있습니다.
예외 객체 정보 얻기
except
블록 안에서는 예외 객체에 접근하여 예외 정보를 얻을 수 있습니다. 예외 객체에는 예외의 타입, 메시지 등 다양한 정보가 포함되어 있습니다.
try:
# 예외가 발생할 수 있는 코드
result = 10 / 0 # ZeroDivisionError
except ZeroDivisionError as e:
# 예외 객체 정보를 얻어 출력
print(f"예외 타입: {type(e).__name__}")
print(f"예외 메시지: {str(e)}")
위의 예제에서는 ZeroDivisionError
예외 객체를 e
라는 이름으로 접근하고 있습니다. type(e).__name__
은 예외 객체의 타입을, str(e)
는 예외 객체의 문자열 표현을 얻어 출력합니다.
except
블록을 적절하게 활용하여 예외 처리를 할 수 있다면, 프로그램의 안정성과 에러 핸들링 효율성을 향상시킬 수 있습니다. 다양한 예외 처리 패턴을 익히고, 예외 객체의 정보를 적절하게 활용하는 것이 중요합니다.