Wie kann ich unbehandelte Ausnahmen bei der Verwendung von Guzzle vermeiden?

DDD
Freigeben: 2024-11-02 08:25:02
Original
519 Leute haben es durchsucht

How Can I Avoid Unhandled Exceptions When Using Guzzle?

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,
   )
));
Nach dem Login kopieren

Guzzle 5.3

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

Guzzle 6

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

Sobald Ausnahmen deaktiviert sind, können Sie den HTTP-Statuscode aus der Antwort abrufen:

$request = $client->get($uri);
$response = $request->send();
$statuscode = $response->getStatusCode();
Nach dem Login kopieren

Sie können dann verschiedene Statuscodes entsprechend behandeln:

if ($statuscode > 300) {
  // Do some error handling
}
Nach dem Login kopieren

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...");
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!