[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 블록을 추가하여 동작을 정의할 수 있습니다.
참고 자료:
- Requests 공식 문서: https://docs.python-requests.org/en/latest/
- Python 공식 문서: https://docs.python.org/3/library/exceptions.html