Python의 요청 모듈을 사용할 때 가능한 모든 예외를 어떻게 처리할 수 있습니까?

DDD
풀어 주다: 2024-11-15 06:08:02
원래의
156명이 탐색했습니다.

How Can You Handle All Possible Exceptions When Using Python's Requests Module?

Python의 요청 모듈로 예외 처리

HTTP 요청 시 예외를 포착하는 것은 강력한 오류 처리에 매우 중요합니다. 제공된 코드 조각은 일부 연결 관련 오류를 처리할 수 있지만 다른 잠재적인 문제는 놓치고 있습니다.

요청 문서에 따르면 다음과 같은 경우 다양한 예외 유형이 발생합니다.

  • 연결 오류( DNS 실패 및 거부된 연결 포함): ConnectionError
  • 잘못된 HTTP 응답: HTTPError
  • 시간 초과: 시간 초과
  • 과도한 리디렉션: TooManyRedirects

이 모든 예외 ~로부터 상속받다 requests.Exceptions.RequestException.

모든 기반을 포괄하려면 다음을 수행할 수 있습니다.

  1. 기본 클래스 잡기 예외:
try:
    r = requests.get(url, params={'s': thing})
except requests.exceptions.RequestException as e:  # Handle all cases
    raise SystemExit(e)
로그인 후 복사
  1. 예외를 별도로 포착:
try:
    r = requests.get(url, params={'s': thing})
except requests.exceptions.Timeout:
    # Implement a retry strategy
except requests.exceptions.TooManyRedirects:
    # Notify user of incorrect URL
except requests.exceptions.RequestException as e:
    # Catastrophic error, terminate
    raise SystemExit(e)
로그인 후 복사

HTTP 오류 처리:

키워야 한다면 HTTP 상태 코드(예: 401 Unauthorized)에 대한 예외가 발생하면 요청한 후 Response.raise_for_status를 호출하세요.

try:
    r = requests.get('http://www.google.com/nothere')
    r.raise_for_status()
except requests.exceptions.HTTPError as err:
    raise SystemExit(err)
로그인 후 복사

가능한 모든 예외 유형을 고려하고 오류 처리 전략을 조정하면 애플리케이션이 네트워크 문제를 적절하게 처리하고 사용자에게 적절한 응답을 제공하도록 할 수 있습니다.

위 내용은 Python의 요청 모듈을 사용할 때 가능한 모든 예외를 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿