본문 바로가기

프로그래밍 언어/파이썬

파이썬(Python) 예외 처리 try, except, finally 활용 방법

파이썬(Python) 예외 처리 try, except, finally 활용 방법

프로그래밍을 하다 보면 예상치 못한 오류가 발생할 수 있습니다. 이러한 오류는 프로그램의 정상적인 흐름을 방해할 수 있기 때문에, 이를 적절히 처리하는 방법을 아는 것은 매우 중요합니다. 이 글에서는 파이썬(Python)의 예외 처리 구문인 try, except, finally를 활용하는 방법에 대해 자세히 알아보겠습니다.

 

 

 

1. 예외 처리란 무엇인가?

예외 처리란 프로그램 실행 중 발생하는 오류를 예측하고, 이에 대한 적절한 대응을 하는 과정을 말합니다. 이를 통해 프로그램이 오류로 인해 갑자기 종료되는 것을 방지하고, 보다 안정적으로 실행될 수 있도록 합니다.

 

 

2. 기본 예외 처리 구문

파이썬에서 예외 처리는 tryexcept 구문을 사용하여 이루어집니다. 기본 구조는 다음과 같습니다:

try:
    # 예외가 발생할 수 있는 코드
except 예외타입:
    # 예외가 발생했을 때 실행할 코드

예를 들어, 0으로 나누기를 시도하는 경우:

try:
    result = 10 / 0
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")

 

 

3. 여러 예외 처리하기

여러 종류의 예외를 처리하려면 여러 개의 except 블록을 사용할 수 있습니다:

try:
    value = int(input("숫자를 입력하세요: "))
    result = 10 / value
except ValueError:
    print("잘못된 입력입니다. 숫자를 입력하세요.")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")

 

 

4. 예외 객체 사용하기

예외가 발생했을 때 예외 객체를 사용하여 더 많은 정보를 얻을 수 있습니다:

try:
    result = 10 / 0
except ZeroDivisionError as e:
    print(f"예외가 발생했습니다: {e}")

 

 

5. finally 블록 활용하기

finally 블록은 예외 발생 여부와 관계없이 항상 실행되는 코드 블록입니다. 주로 자원 해제를 위해 사용됩니다:

try:
    file = open('example.txt', 'r')
    data = file.read()
except FileNotFoundError:
    print("파일을 찾을 수 없습니다.")
finally:
    file.close()

위 코드에서는 파일을 열고 읽은 후, 예외 발생 여부와 관계없이 파일을 닫습니다.

 

 

 

 

6. 사용자 정의 예외

필요에 따라 사용자 정의 예외를 만들 수 있습니다. 이는 기본 예외 클래스를 상속받아 정의합니다:

class CustomError(Exception):
    pass

def risky_function():
    raise CustomError("이것은 사용자 정의 예외입니다.")

try:
    risky_function()
except CustomError as e:
    print(e)

 

 

7. 결론

파이썬(Python)의 예외 처리는 프로그램의 안정성을 높이는 중요한 기술입니다. try, except, finally 구문을 적절히 활용하면 다양한 오류 상황에 대응할 수 있으며, 사용자 정의 예외를 통해 특정 상황에 맞는 예외 처리를 구현할 수 있습니다. 예외 처리의 기본 개념부터 고급 활용법까지 익혀서 더욱 안정적인 파이썬 프로그램을 작성해 보세요.