🔥 try-except 블록

343자
4분

파이썬에서 예외 처리는 프로그램의 안정성과 신뢰성을 크게 향상시키는 핵심 요소입니다. 이 장에서는 try-except 블록을 사용하여 다양한 예외 상황을 처리하는 방법에 대해 자세히 알아봅니다.

try-except 블록의 기본 구조

try-except 블록은 파이썬에서 예외를 처리하는 기본적인 방법입니다. 이 구조를 사용하면 예외가 발생했을 때 프로그램이 중단되지 않고, 지정된 예외 처리 코드를 실행할 수 있습니다.

try:
    # 예외가 발생할 수 있는 코드
    print(10 / 0)
except ZeroDivisionError:
    # 예외 처리 코드
    print("0으로 나눌 수 없습니다.")
 
python

0으로 나누기 시도 시 ZeroDivisionError 예외가 처리됩니다.

다중 Except 블록

한 try 블록에서 여러 예외를 처리할 수 있습니다. 이를 통해 다양한 예외 상황에 대응할 수 있습니다.

try:
    # 다양한 예외가 발생할 수 있는 코드
    pass
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
except ValueError:
    print("잘못된 값을 입력했습니다.")
 
python

각 예외 유형에 따라 다른 처리를 할 수 있습니다.

일반 예외 처리

특정 예외 유형을 지정하지 않고, 모든 예외를 잡아내려면 Exception 클래스를 사용할 수 있습니다.

try:
    # 예외 발생 가능 코드
    pass
except Exception as e:
    print(f"예외 발생: {e}")
 
python

모든 예외는 Exception 클래스를 상속받기 때문에, 이를 통해 모든 예외를 잡아낼 수 있습니다.

예외의 추가 정보 활용

예외 객체에서는 예외와 관련된 추가 정보를 얻을 수 있습니다. 이 정보를 활용하면 더 상세한 예외 처리가 가능합니다.

try:
    # 예외 발생 가능 코드
    pass
except Exception as e:
    print(f"예외 유형: {type(e)}, 메시지: {e}")
 
python

예외의 유형과 메시지를 출력하여 더 많은 정보를 얻을 수 있습니다.

else 블록 사용

else 블록은 예외가 발생하지 않았을 때 실행되는 코드를 작성하는 데 사용됩니다.

try:
    # 예외 발생 가능 코드
    result = 10 / 5
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
else:
    print("결과:", result)
 
python

예외가 발생하지 않으면 else 블록의 코드가 실행됩니다.

finally 블록

finally 블록은 예외 발생 여부와 상관없이 항상 실행되는 코드를 작성하는 데 사용됩니다. 주로 자원을 정리하는 코드에 사용됩니다.

try:
    # 예외 발생 가능 코드
    pass
finally:
    # 항상 실행되는 코드
    print("항상 실행됩니다.")
 
python

예외 발생 여부에 상관없이 finally 블록은 항상 실행됩니다.

연습문제

  1. FileNotFoundError 예외를 처리하는 코드를 작성하고, 파일을 찾을 수 없을 때 적절한 오류 메시지를 출력하세요.
  2. 여러 예외를 하나의 except 블록에서 처리하는 예제를 작성하세요.