[파이썬] 예외 처리를 통한 오류 대응

소프트웨어 개발 과정에서는 오류가 발생할 수 있습니다. 이러한 오류를 처리하고 대응하는 것은 중요한 작업입니다. 파이썬은 강력한 예외 처리 메커니즘을 제공하여 오류 대응을 용이하게 해줍니다. 이번 글에서는 예외 처리를 통한 오류 대응에 대해 알아보도록 하겠습니다.

예외란 무엇인가요?

예외(Exception)는 프로그램 실행 중에 발생하는 오류를 의미합니다. 예외는 다양한 상황에서 발생할 수 있으며, 예를 들어 파일을 찾을 수 없는 경우, 0으로 나누는 경우 등이 있습니다. 파이썬은 이러한 예외를 자동으로 처리합니다. 하지만 예외를 무시하거나 무단으로 처리하지 않으면 프로그램이 비정상적으로 종료될 수 있습니다.

예외 처리 방법

파이썬에서는 try-except 문을 사용하여 예외를 처리할 수 있습니다. try 블록 내에는 발생할 가능성이 있는 예외가 있는 코드를 위치시킵니다. 그리고 except 블록 내에는 예외가 발생했을 때 처리할 코드를 작성합니다.

try:
    # 예외가 발생할 가능성이 있는 코드
    result = 10/0
except ZeroDivisionError:
    # 예외가 발생했을 때 실행할 코드
    print("0으로 나눌 수 없습니다.")

위의 예제에서는 0으로 나누는 경우 ZeroDivisionError 예외가 발생합니다. try 블록에서 이 예외가 발생하면 except 블록이 실행되고, “0으로 나눌 수 없습니다.”라는 메시지가 출력됩니다.

다중 예외 처리

try-except 문은 여러 개의 except 블록을 가질 수 있습니다. 이를 통해 다양한 예외를 처리할 수 있습니다.

try:
    # 예외가 발생할 가능성이 있는 코드
    result = int("ABC")
except ValueError:
    # ValueError 예외 처리 코드
    print("유효하지 않은 숫자입니다.")
except TypeError:
    # TypeError 예외 처리 코드
    print("타입 오류입니다.")

위의 예제에서는 int() 함수를 사용하여 문자열을 정수로 변환하려했을 때 ValueError 예외가 발생합니다. try 블록 내에서 이 예외가 발생하면 except ValueError 블록이 실행되고, “유효하지 않은 숫자입니다.”라는 메시지가 출력됩니다. 또한, 만약 int() 함수 대신 리스트를 정수로 변환하려고 시도한다면 TypeError 예외가 발생하며 except TypeError 블록이 실행됩니다.

예외 발생 시점 제어하기

파이썬에서는 raise 문을 사용하여 개발자가 직접 예외를 발생시킬 수도 있습니다. 이를 통해 특정 상황에서 예외를 강제로 발생시킬 수 있습니다.

try:
    age = -10
    if age < 0:
        raise ValueError("나이는 음수일 수 없습니다.")
except ValueError as e:
    print(e)

위의 예제에서는 age 변수가 음수인 경우 ValueError 예외를 발생시킵니다. try 블록 내에서 예외가 발생하면 except ValueError as e 블록이 실행되고, 예외 객체를 통해 오류 메시지를 출력합니다.

마무리

예외 처리를 통해 오류를 대응하는 것은 파이썬 개발에서 매우 중요한 부분입니다. try-except 문을 사용하여 예외를 처리하고, 필요한 경우 예외를 직접 발생시킬 수 있습니다. 이를 통해 안정적이고 오류에 강한 프로그램을 개발할 수 있습니다.