오늘의 파이썬 공부: try-except block

안녕하세요, 오늘은 파이썬 프로그래밍에서 중요한 개념인 ‘try-except block’에 대해 알아보겠습니다. 이 개념은 코드 실행 중 발생할 수 있는 오류를 처리하는 데 매우 유용하며, 특히 예외 상황을 관리하여 프로그램이 중단되지 않고 안정적으로 실행되도록 돕습니다. ‘try-except block’은 코드의 신뢰성을 높이고, 오류 발생 시 적절한 대처를 가능하게 합니다.

오늘의 파이썬 공부: try-except block

‘try-except block’ 기본 개념 이해하기

이번 섹션에서는 ‘try-except block’의 핵심 원리와 기본 개념을 살펴보겠습니다. 이 기능을 이해하면 코드 내에서 발생할 수 있는 다양한 오류를 효과적으로 처리할 수 있습니다.

기본 문법 및 구조

‘try-except block’의 기본 구조는 매우 간단합니다. ‘try’ 블록에는 오류가 발생할 가능성이 있는 코드를 작성하고, ‘except’ 블록에는 그 오류를 처리하는 코드를 작성합니다. 예제를 통해 자세히 살펴보겠습니다.


try:
    # 오류가 발생할 수 있는 코드
    number = int(input("숫자를 입력하세요: "))
    print(f"입력한 숫자는 {number}입니다.")
except ValueError:
    # ValueError가 발생했을 때 실행할 코드
    print("유효한 숫자가 아닙니다.")

위 코드에서 사용자가 숫자가 아닌 값을 입력할 경우, ‘ValueError’가 발생합니다. 이때 ‘except’ 블록이 실행되어 사용자에게 오류 메시지를 출력합니다.

 

실용적인 활용 예제

이 섹션에서는 ‘try-except block’을 실제 코딩에서 어떻게 활용할 수 있는지 다양한 예제를 통해 알아보겠습니다.

예제 1

첫 번째 예제로, 파일을 읽을 때 발생할 수 있는 오류를 처리하는 코드를 살펴보겠습니다.


try:
    with open("test.txt", "r") as file:
        content = file.read()
        print(content)
except FileNotFoundError:
    print("파일이 존재하지 않습니다.")

이 예제에서는 ‘test.txt’라는 파일을 읽으려고 시도합니다. 파일이 없을 경우 ‘FileNotFoundError’가 발생하며, 이때 ‘except’ 블록이 실행됩니다.

예제 2

두 번째 예제는 리스트의 요소를 접근할 때 발생할 수 있는 오류를 처리하는 방법입니다.


my_list = [1, 2, 3]

try:
    print(my_list[5])
except IndexError:
    print("리스트의 인덱스가 범위를 벗어났습니다.")

여기서는 리스트의 유효하지 않은 인덱스에 접근하려고 할 때 ‘IndexError’가 발생하며, 이때 ‘except’ 블록이 실행됩니다.

 

주의사항 및 팁

‘try-except block’을 사용할 때 흔히 하는 실수와 알아두면 좋은 팁들을 공유하겠습니다. 이를 통해 더 효율적이고 안전한 코드를 작성할 수 있습니다.

흔히 하는 실수

초보자들이 자주 하는 실수 중 하나는 모든 예외를 잡으려고 ‘except’ 블록에 구체적인 예외를 명시하지 않는 것입니다. 이는 예상치 못한 오류를 숨길 수 있으므로 주의가 필요합니다.


# 이렇게 작성하지 마세요!
try:
    result = 1 / 0
except:
    print("오류가 발생했습니다.")

위와 같은 코드는 어떤 오류가 발생했는지 파악하기 어려우므로, 가능한 구체적인 예외를 명시해주는 것이 좋습니다.

알아두면 좋은 팁

‘try-except block’을 사용할 때는 ‘finally’ 블록을 함께 사용하여 오류 발생 여부와 관계없이 항상 실행해야 하는 코드를 작성할 수 있습니다. 이는 파일 닫기와 같은 정리 작업에 유용합니다.


try:
    file = open("data.txt", "r")
    # 파일 작업
except IOError:
    print("파일을 열 수 없습니다.")
finally:
    file.close()
    print("파일이 닫혔습니다.")

이렇게 하면 파일을 열고 작업한 후, 오류 발생 여부와 상관없이 파일이 닫히도록 보장할 수 있습니다.

 

결론 및 요약

오늘은 파이썬의 ‘try-except block’에 대해 배워보았습니다. 이 기능은 프로그램의 안정성을 보장하고, 다양한 예외 상황을 효과적으로 처리하는 데 필수적입니다. 여러 예제를 통해 실용적인 활용 방법을 살펴보았고, 주의사항과 팁도 함께 알아보았습니다. 직접 코드를 작성해 보시면서, 예외 처리를 보다 능숙하게 다룰 수 있게 되시길 바랍니다.