使用 Guzzle 避免未處理的異常
測試 API 時,處理 HTTP 錯誤以防止異常停止執行至關重要。 Guzzle 提供了捕捉這些異常的方法,但有時您的程式碼可能仍會遇到未處理的異常。
您所面臨的問題可以透過停用 Guzzle 的異常來解決。這允許您手動處理狀態代碼,而不會出現異常幹擾。實現此目的的方法如下:
Guzzle 3
$client = new \Guzzle\Http\Client($httpBase, array( 'request.options' => array( 'exceptions' => false, ) ));
Guzzle 5.3
$client = new \GuzzleHttp\Client(['defaults' => [ 'exceptions' => false ]] );
Guzzle 6
$client = new \GuzzleHttp\Client(['http_errors' => false]);
$request = $client->get($uri); $response = $request->send(); $statuscode = $response->getStatusCode();
if ($statuscode > 300) { // Do some error handling }
if (200 === $statuscode) { // Do something } elseif (304 === $statuscode) { // Nothing to do } elseif (404 === $statuscode) { // Clean up DB or something like this } else { throw new MyException("Invalid response from api..."); }
以上是使用 Guzzle 時如何避免未處理的異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!