[python] 에러 응답에 대한 예외 처리하기

프로그래밍을 할 때, API 호출이나 웹 요청을 통해 서버로부터 응답을 받는 경우 오류가 발생할 수 있습니다. 이러한 오류를 처리하기 위해 예외 처리가 필요합니다. 이번 포스트에서는 Python에서 에러 응답에 대한 예외 처리하는 방법에 대해 알아보겠습니다.

1. try-except 문

Python에서 예외 처리는 try-except 문을 사용하여 구현합니다. try 블록에는 예외가 발생할 것으로 예상되는 코드를 작성하고, except 블록에는 예외가 발생했을 때 실행될 코드를 작성합니다.

다음은 예시입니다.

try:
    # 예외가 발생할 것으로 예상되는 코드
    response = requests.get(url)
    response.raise_for_status()  # 응답이 성공적이지 않으면 예외 발생
except requests.exceptions.HTTPError as e:
    # 예외 처리 코드
    print(f"HTTP Error occurred: {e}")
except requests.exceptions.Timeout as e:
    print(f"Timeout occurred: {e}")
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

위의 예시에서 requests.get() 메소드를 통해 URL로 GET 요청을 보내고, response.raise_for_status() 메소드를 호출하여 응답이 성공적이지 않은 경우 예외를 발생시킵니다. 발생한 예외에 따라 적절한 예외 처리 코드가 실행됩니다.

2. HTTP 상태 코드 확인하기

API 호출이나 웹 요청을 할 때, 서버의 응답은 HTTP 상태 코드로 전달됩니다. 이 상태 코드를 확인하여 오류 응답에 대한 예외 처리를 할 수 있습니다.

다음은 예시입니다.

response = requests.get(url)
if response.status_code != 200:
    raise Exception(f"Request failed with status code {response.status_code}")
# 이후에 정상적인 처리를 계속 진행합니다.

위의 예시에서는 응답의 상태 코드가 200이 아닌 경우에만 예외를 발생시킵니다. 이후에는 예외 처리 코드에서 재시도하는 등 적절한 조치를 취할 수 있습니다.

3. 커스텀 예외 클래스 정의하기

Python에서는 기본적으로 제공되는 예외 클래스 이외에도, 사용자 정의 예외 클래스를 정의할 수 있습니다. 이를 활용하면 특정한 종류의 예외에 대해서만 처리할 수 있습니다.

다음은 예시입니다.

class CustomException(Exception):
    pass

try:
    # 예외가 발생할 것으로 예상되는 코드
    if condition:
        raise CustomException("Custom exception occurred")
except CustomException as e:
    # 커스텀 예외 처리 코드
    print(f"Custom exception occurred: {e}")
except Exception as e:
    # 다른 예외 처리 코드
    print(f"An error occurred: {e}")

위의 예시에서는 CustomException이라는 사용자 정의 예외 클래스를 정의하고, 이 예외가 발생한 경우에만 해당 예외 처리 코드가 실행됩니다. 다른 예외가 발생한 경우에는 except Exception 블록에서 처리됩니다.

4. 정확한 예외 처리의 중요성

정확한 예외 처리는 안정적인 프로그램을 작성하는데 매우 중요합니다. 예외 처리를 통해 오류 상황을 적절하게 대처하고, 사용자에게 명확한 메세지를 제공할 수 있습니다. 또한 예외 처리를 잘 구현함으로써 프로그램의 가독성과 유지 보수성도 향상시킬 수 있습니다.

5. 결론

이번 포스트에서는 Python에서 에러 응답에 대한 예외 처리하는 방법을 알아보았습니다. try-except 문을 사용하여 예외를 처리하고, HTTP 상태 코드를 확인하여 오류 응답에 대한 예외 처리를 할 수 있습니다. 또한 커스텀 예외 클래스를 정의하여 특정한 종류의 예외에 대해서만 처리할 수 있습니다. 이러한 예외 처리를 통해 안정적이고 견고한 프로그램을 작성할 수 있습니다.

더 자세한 내용은 다음 참고 자료들을 확인해보세요: