Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menangkap Pengecualian daripada Guzzle?

Bagaimana untuk Menangkap Pengecualian daripada Guzzle?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-01 09:48:30156semak imbas

How to Catch Exceptions from Guzzle?

Menangkap Pengecualian daripada Guzzle

Pengenalan

Apabila menguji API menggunakan Guzzle, pengendalian pengecualian ialah penting untuk memastikan pelaporan ralat yang boleh dipercayai dan bermaklumat. Walau bagaimanapun, menangkap pengecualian dalam Guzzle kadangkala boleh mencabar, kerana ralat pengecualian yang tidak dikendalikan mungkin berterusan.

Guzzle 3

Untuk menangkap pengecualian daripada Guzzle, ikut langkah ini:

  1. Balut ujian anda dalam blok cuba/tangkap.
  2. Tambah pendengar acara kepada penghantar acara pelanggan, seperti yang diterangkan dalam dokumentasi Guzzle.
  3. Dalam pendengar acara, kendalikan kod respons HTTP tertentu (cth., 401, 400) dengan menggantikan objek respons dengan yang baharu dan menghalang selanjutnya penyebaran.

Penyelesaian masalah

Jika anda masih menghadapi ralat pengecualian yang tidak dikendalikan, cuba lumpuhkan pengecualian untuk Guzzle dengan mengubah suai proses penciptaan klien. Untuk Guzzle 3:

$client = new \Guzzle\Http\Client($httpBase, array(
  'request.options' => array(
     'exceptions' => false,
   )
));

Ini akan membolehkan anda mendapatkan semula semua kod status HTTP tanpa membuang pengecualian.

Guzzle 5.3 dan Guzzle 6

Untuk Guzzle 5.3 dan Guzzle 6, prosedurnya berbeza sedikit:

Guzzle 5.3:

$client = new \GuzzleHttp\Client(['defaults' => [ 'exceptions' => false ]] );

Guzzle 6:

$client = new \GuzzleHttp\Client(['http_errors' => false]);

Mengendalikan Respons HTTP Kod

Setelah pengecualian dilumpuhkan, anda boleh menggunakan kaedah getStatusCode() objek respons untuk mendapatkan semula kod respons HTTP. Kendalikan kod yang dijangkakan dengan sewajarnya, seperti 200 untuk kejayaan, 304 untuk tiada perubahan atau 404 untuk tidak ditemui. Jika kod yang tidak dijangka ditemui, pertimbangkan untuk membuang pengecualian tersuai.

Atas ialah kandungan terperinci Bagaimana untuk Menangkap Pengecualian daripada Guzzle?. 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