Heim > Artikel > Backend-Entwicklung > Wie kann ich unbehandelte Ausnahmen bei der Verwendung von Guzzle vermeiden?
Unbehandelte Ausnahmen mit Guzzle vermeiden
Beim Testen von APIs ist es wichtig, HTTP-Fehler zu behandeln, um zu verhindern, dass Ausnahmen die Ausführung stoppen. Guzzle bietet Möglichkeiten, diese Ausnahmen abzufangen, aber manchmal stößt Ihr Code dennoch auf nicht behandelte Ausnahmen.
Das Problem, mit dem Sie konfrontiert sind, kann durch Deaktivieren von Ausnahmen für Guzzle gelöst werden. Dadurch können Sie die Statuscodes manuell bearbeiten, ohne dass Ausnahmen dazwischenkommen. So erreichen Sie dies:
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]);
Sobald Ausnahmen deaktiviert sind, können Sie den HTTP-Statuscode aus der Antwort abrufen:
$request = $client->get($uri); $response = $request->send(); $statuscode = $response->getStatusCode();
Sie können dann verschiedene Statuscodes entsprechend behandeln:
if ($statuscode > 300) { // Do some error handling }
Oder behandeln Sie bestimmte erwartete Codes:
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..."); }
Durch das Deaktivieren von Ausnahmen und das manuelle Bearbeiten von Statuscodes haben Sie die volle Kontrolle über die Fehlerbehandlung und können Unterbrechungen bei Ihrer Testausführung verhindern.
Das obige ist der detaillierte Inhalt vonWie kann ich unbehandelte Ausnahmen bei der Verwendung von Guzzle vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!