[python] Requests 라이브러리에서 에러 핸들링하는 방법은?

파이썬의 Requests 라이브러리는 HTTP 요청을 보내고 받는 작업을 간편하게 처리할 수 있게 해줍니다. 하지만 때로는 서버의 응답이나 네트워크 상태 등으로 인해 에러가 발생할 수 있습니다. 이런 경우에는 예외 처리를 통해 에러를 처리하고 대응하는 것이 좋습니다.

Requests 라이브러리에서 에러 핸들링하는 방법은 아래와 같습니다:

import requests

try:
    response = requests.get('http://example.com')
    response.raise_for_status()  # 만약 에러 응답이 오면 예외 발생
except requests.exceptions.HTTPError as errh:
    print("HTTP 에러 발생:", errh)
except requests.exceptions.ConnectionError as errc:
    print("연결 에러 발생:", errc)
except requests.exceptions.Timeout as errt:
    print("타임아웃 에러 발생:", errt)
except requests.exceptions.RequestException as err:
    print("기타 에러 발생:", err)

위 예제에서는 먼저 requests.get() 함수를 사용하여 GET 요청을 보냅니다. 그리고 response.raise_for_status()를 호출하여 만약 에러 응답이 오면 예외를 발생시킵니다.

예외 처리 블록에서는 requests.exceptions 모듈에서 제공하는 다양한 예외 타입을 사용하여 에러를 처리합니다. 예를 들어, requests.exceptions.HTTPError는 HTTP 응답의 상태 코드가 400 이상인 경우에 발생하며, requests.exceptions.ConnectionError는 서버와의 연결이 실패한 경우에 발생합니다.

만약 어떤 예외가 발생했는지에 따라 다른 동작을 수행하고 싶다면, 각각의 예외 타입에 대한 except 블록을 추가하여 동작을 정의할 수 있습니다.

참고 자료: