[파이썬] except 블록의 활용

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 블록을 적절하게 활용하여 예외 처리를 할 수 있다면, 프로그램의 안정성과 에러 핸들링 효율성을 향상시킬 수 있습니다. 다양한 예외 처리 패턴을 익히고, 예외 객체의 정보를 적절하게 활용하는 것이 중요합니다.