🔥 try-except 블록
파이썬에서 예외 처리는 프로그램의 안정성과 신뢰성을 크게 향상시키는 핵심 요소입니다. 이 장에서는 try-except 블록을 사용하여 다양한 예외 상황을 처리하는 방법에 대해 자세히 알아봅니다.
try-except 블록의 기본 구조
try-except 블록은 파이썬에서 예외를 처리하는 기본적인 방법입니다. 이 구조를 사용하면 예외가 발생했을 때 프로그램이 중단되지 않고, 지정된 예외 처리 코드를 실행할 수 있습니다.
try:
# 예외가 발생할 수 있는 코드
print(10 / 0)
except ZeroDivisionError:
# 예외 처리 코드
print("0으로 나눌 수 없습니다.")
try:
# 예외가 발생할 수 있는 코드
print(10 / 0)
except ZeroDivisionError:
# 예외 처리 코드
print("0으로 나눌 수 없습니다.")
0으로 나누기 시도 시 ZeroDivisionError 예외가 처리됩니다.
다중 Except 블록
한 try 블록에서 여러 예외를 처리할 수 있습니다. 이를 통해 다양한 예외 상황에 대응할 수 있습니다.
try:
# 다양한 예외가 발생할 수 있는 코드
pass
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
except ValueError:
print("잘못된 값을 입력했습니다.")
try:
# 다양한 예외가 발생할 수 있는 코드
pass
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
except ValueError:
print("잘못된 값을 입력했습니다.")
각 예외 유형에 따라 다른 처리를 할 수 있습니다.
일반 예외 처리
특정 예외 유형을 지정하지 않고, 모든 예외를 잡아내려면 Exception 클래스를 사용할 수 있습니다.
try:
# 예외 발생 가능 코드
pass
except Exception as e:
print(f"예외 발생: {e}")
try:
# 예외 발생 가능 코드
pass
except Exception as e:
print(f"예외 발생: {e}")
모든 예외는 Exception 클래스를 상속받기 때문에, 이를 통해 모든 예외를 잡아낼 수 있습니다.
예외의 추가 정보 활용
예외 객체에서는 예외와 관련된 추가 정보를 얻을 수 있습니다. 이 정보를 활용하면 더 상세한 예외 처리가 가능합니다.
try:
# 예외 발생 가능 코드
pass
except Exception as e:
print(f"예외 유형: {type(e)}, 메시지: {e}")
try:
# 예외 발생 가능 코드
pass
except Exception as e:
print(f"예외 유형: {type(e)}, 메시지: {e}")
예외의 유형과 메시지를 출력하여 더 많은 정보를 얻을 수 있습니다.
else 블록 사용
else 블록은 예외가 발생하지 않았을 때 실행되는 코드를 작성하는 데 사용됩니다.
try:
# 예외 발생 가능 코드
result = 10 / 5
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
else:
print("결과:", result)
try:
# 예외 발생 가능 코드
result = 10 / 5
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
else:
print("결과:", result)
예외가 발생하지 않으면 else 블록의 코드가 실행됩니다.
finally 블록
finally 블록은 예외 발생 여부와 상관없이 항상 실행되는 코드를 작성하는 데 사용됩니다. 주로 자원을 정리하는 코드에 사용됩니다.
try:
# 예외 발생 가능 코드
pass
finally:
# 항상 실행되는 코드
print("항상 실행됩니다.")
try:
# 예외 발생 가능 코드
pass
finally:
# 항상 실행되는 코드
print("항상 실행됩니다.")
예외 발생 여부에 상관없이 finally 블록은 항상 실행됩니다.
연습문제
FileNotFoundError예외를 처리하는 코드를 작성하고, 파일을 찾을 수 없을 때 적절한 오류 메시지를 출력하세요.- 여러 예외를 하나의
except블록에서 처리하는 예제를 작성하세요.












