requests 라이브러리를 사용할 때 발생할 수 있는 여러 가지 예외들을 처리하는 방법
ConnectionError:
- 서버에 연결할 수 없거나 DNS 조회에 실패하는 경우 발생합니다.
import requests
try:
response = requests.get(url)
except requests.exceptions.ConnectionError as e:
print("서버에 연결할 수 없습니다:", e)
Timeout:
- 요청 시간 초과가 발생한 경우 발생합니다.
import requests
try:
response = requests.get(url, timeout=5)
except requests.exceptions.Timeout as e:
print("요청 시간 초과입니다:", e)
TooManyRedirects:
- 리디렉션 횟수가 너무 많은 경우 발생합니다.
import requests
try:
response = requests.get(url, allow_redirects=False)
except requests.exceptions.TooManyRedirects as e:
print("리디렉션 횟수가 너무 많습니다:", e)
HTTPError:
- HTTP 응답 코드가 400 이상인 경우 발생합니다.
import requests
try:
response = requests.get(url)
response.raise_for_status()
except requests.exceptions.HTTPError as e:
print("HTTP 에러가 발생했습니다:", e)
RequestException:
- Requests 모듈에서 발생하는 모든 예외의 기본 클래스입니다.
import requests
try:
response = requests.get(url)
except requests.exceptions.RequestException as e:
print("Requests 예외가 발생했습니다:", e)
최상위 에러: Exception
- 모든 예외의 부모 클래스로, 모든 예외를 처리합니다.
import requests
try:
response = requests.get(url)
except Exception as e:
print("에러가 발생했습니다:", e)
각 예외에 대한 예시는 위에서 제시한 코드들이 이미 해당 예외를 처리하고 있습니다.