Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Anda Boleh Mengendalikan Semua Pengecualian yang Berkemungkinan Apabila Menggunakan Modul Permintaan Python?

Bagaimanakah Anda Boleh Mengendalikan Semua Pengecualian yang Berkemungkinan Apabila Menggunakan Modul Permintaan Python?

DDD
Lepaskan: 2024-11-15 06:08:02
asal
217 orang telah melayarinya

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

Mengendalikan Pengecualian dengan Modul Permintaan Python

Menangkap pengecualian apabila membuat permintaan HTTP adalah penting untuk pengendalian ralat yang mantap. Walaupun coretan kod yang disediakan boleh mengendalikan beberapa ralat berkaitan sambungan, ia terlepas isu berpotensi lain.

Menurut dokumentasi Permintaan, jenis pengecualian berbeza dibangkitkan untuk:

  • Ralat sambungan ( termasuk kegagalan DNS dan sambungan yang ditolak): ConnectionError
  • Respons HTTP tidak sah: HTTPError
  • Tamat masa: Tamat masa
  • Ubah hala yang berlebihan: TooManyRedirects

Semua pengecualian ini diwarisi daripada requests.exceptions.RequestException.

Untuk meliputi semua asas, anda boleh:

  1. Tangkap Pengecualian Kelas Asas:
try:
    r = requests.get(url, params={'s': thing})
except requests.exceptions.RequestException as e:  # Handle all cases
    raise SystemExit(e)
Salin selepas log masuk
  1. Tangkap Pengecualian Secara Berasingan:
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)
Salin selepas log masuk

Mengendalikan Ralat HTTP:

Jika anda perlu mengemukakan pengecualian untuk kod status HTTP (cth., 401 Tanpa Kebenaran), hubungi Respons .raise_for_status selepas membuat permintaan.

try:
    r = requests.get('http://www.google.com/nothere')
    r.raise_for_status()
except requests.exceptions.HTTPError as err:
    raise SystemExit(err)
Salin selepas log masuk

Dengan mempertimbangkan semua jenis pengecualian yang mungkin dan menyesuaikan strategi pengendalian ralat anda, anda boleh memastikan aplikasi anda mengendalikan isu rangkaian dengan anggun dan memberikan respons yang sesuai kepada pengguna.

Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Mengendalikan Semua Pengecualian yang Berkemungkinan Apabila Menggunakan Modul Permintaan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan