Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Mengendalikan Ralat dalam Modul Permintaan Python dengan Berkesan?

Bagaimana Mengendalikan Ralat dalam Modul Permintaan Python dengan Berkesan?

Linda Hamilton
Linda Hamiltonasal
2024-11-20 02:01:01618semak imbas

How to Handle Errors in Python Requests Module Effectively?

Cuba/Kecuali Pengendalian Ralat dalam Modul Permintaan Python

Menggunakan modul Permintaan dalam Python ialah cara mudah untuk mengendalikan panggilan API dan permintaan HTTP . Apabila ralat berlaku semasa pelaksanaan permintaan, adalah penting untuk mempunyai pengendalian ralat yang mantap.

Adakah kod ini betul?

try:
    r = requests.get(url, params={'s': thing})
except requests.ConnectionError, e:
    print(e)

Kod ini cuba untuk menangkap hanya ralat berkaitan sambungan dengan mengendalikan pengecualian ConnectionError. Walau bagaimanapun, ini tidak merangkumi semua kemungkinan senario ralat yang boleh dihadapi oleh modul Permintaan.

Cara yang lebih baik untuk menstruktur pengendalian ralat

Untuk memastikan semua kemungkinan ralat dikendalikan, adalah disyorkan untuk menangkap permintaan kelas pengecualian asas.RequestException dan bukannya pengecualian khusus seperti ConnectionError.

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

Sebagai alternatif, anda boleh mengendalikan pengecualian khusus secara berasingan dan mengambil tindakan yang berbeza sewajarnya. Sebagai contoh, anda boleh mengendalikan tamat masa secara berbeza daripada ralat sambungan.

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)

Menangkap ralat HTTP

Jika anda ingin menimbulkan pengecualian untuk ralat HTTP seperti 401 Tanpa Kebenaran, anda boleh menggunakan kaedah 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)

Dengan mengendalikan pengecualian secara menyeluruh dan menyesuaikan tingkah laku berdasarkan jenis ralat, anda boleh memastikan bahawa kod anda bertindak balas dengan sewajarnya kepada ralat dan input pengguna semasa permintaan HTTP .

Atas ialah kandungan terperinci Bagaimana Mengendalikan Ralat dalam Modul Permintaan Python dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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