Python 요청 모듈의 오류를 효과적으로 처리하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-20 02:01:01
원래의
616명이 탐색했습니다.

How to Handle Errors in Python Requests Module Effectively?

Python 요청 모듈에서 오류 처리 시도/제외

Python에서 요청 모듈을 사용하는 것은 API 호출 및 HTTP 요청을 처리하는 편리한 방법입니다. . 요청 실행 중 오류가 발생하면 강력한 오류 처리가 필수적입니다.

이 코드가 맞나요?

try:
    r = requests.get(url, params={'s': thing})
except requests.ConnectionError, e:
    print(e)
로그인 후 복사

이 코드는 ConnectionError 예외를 처리하여 연결 관련 오류만 포착합니다. 그러나 이는 요청 모듈에서 발생할 수 있는 모든 오류 시나리오를 다루지는 않습니다.

오류 처리를 구조화하는 더 나은 방법

모든 잠재적인 오류가 처리되도록 하려면, ConnectionError와 같은 특정 예외 대신 요청.Exceptions.RequestException 기본 예외 클래스를 포착하는 것이 좋습니다.

try:
    r = requests.get(url, params={'s': thing})
except requests.exceptions.RequestException as e:  # This is the correct syntax
    raise SystemExit(e)
로그인 후 복사

또는 특정 예외를 별도로 처리하고 그에 따라 다른 조치를 취할 수도 있습니다. 예를 들어 연결 오류와 시간 초과를 다르게 처리할 수 있습니다.

try:
    r = requests.get(url, params={'s': thing})
except requests.exceptions.Timeout:
    # Maybe set up for a retry, or continue in a retry loop
except requests.exceptions.TooManyRedirects:
    # Tell the user their URL was bad and try a different one
except requests.exceptions.RequestException as e:
    # catastrophic error. bail.
    raise SystemExit(e)
로그인 후 복사

HTTP 오류 잡기

401 Unauthorized와 같은 HTTP 오류에 대해 예외를 발생시키려는 경우, 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)
로그인 후 복사

예외를 철저하게 처리하고 오류 유형에 따라 동작을 사용자 정의하면 코드가 HTTP 요청 중 오류 및 사용자 입력에 적절하게 응답하도록 할 수 있습니다. .

위 내용은 Python 요청 모듈의 오류를 효과적으로 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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