[python] 요청 응답에 대한 에러 처리하기

웹 애플리케이션을 개발하다보면 서버로의 요청에 대한 응답에서 발생하는 에러를 처리해야 할 때가 있습니다. 이러한 에러들은 다양한 원인에 의해 발생할 수 있으며, 이를 적절히 처리하지 않으면 사용자에게 예상치 못한 결과를 보여줄 수 있습니다. 이번 포스트에서는 Python에서 요청 응답에 대한 에러를 처리하는 방법에 대해 알아보겠습니다.

HTTP 에러 코드

HTTP 요청을 보낼 때 서버는 다양한 상태 코드를 응답으로 전송합니다. 주요한 상태 코드는 다음과 같습니다:

물론, 이 외에도 유용한 상태 코드들이 있습니다. 이러한 상태 코드를 기반으로 에러 처리를 진행할 수 있습니다.

에러 처리 방법

Python에서는 requests 라이브러리를 사용하여 HTTP 요청을 보낼 수 있습니다. requests는 매우 강력한 라이브러리로서 다양한 기능을 제공합니다. 평상시에는 try-except 구문을 사용하여 예외를 처리하는 것이 좋습니다.

import requests

try:
    response = requests.get('https://example.com')
    response.raise_for_status() # 응답에 에러가 있다면 예외 발생
    print('요청이 성공하였습니다.')
except requests.exceptions.HTTPError as e:
    print(f'에러가 발생하였습니다: {e}')

위의 예제에서는 raise_for_status() 메서드를 사용하여 응답에 에러가 있는지 확인합니다. 만약 에러가 있다면 HTTPError 예외가 발생하며, 이를 try 블록 내에서 처리할 수 있습니다.

예외 처리하기

HTTPError 외에도 다른 예외들도 처리할 수 있습니다. 예를 들어, 요청이 제한된 리소스에 접근하려고 할 때 발생하는 TooManyRedirects 에러를 처리하는 방법은 다음과 같습니다:

import requests

try:
    response = requests.get('https://example.com')
    response.raise_for_status()
    print('요청이 성공하였습니다.')
except requests.exceptions.HTTPError as e:
    print(f'에러가 발생하였습니다: {e}')
except requests.exceptions.TooManyRedirects as e:
    print(f'리다이렉션 횟수가 너무 많습니다: {e}')

이렇게 다양한 예외들을 처리하면 응답에서 발생하는 다양한 에러들을 구체적으로 처리할 수 있습니다.

결론

Python에서는 requests 라이브러리를 사용하여 HTTP 요청을 보낼 수 있습니다. 응답에 발생한 에러들을 적절히 처리하기 위해 try-except 구문을 사용하는 것이 좋습니다. 이를 통해 응답에 대한 에러를 체계적으로 처리할 수 있습니다.

참고 자료