Guzzle 使用時に未処理の例外を回避するにはどうすればよいですか?

DDD
リリース: 2024-11-02 08:25:02
オリジナル
519 人が閲覧しました

How Can I Avoid Unhandled Exceptions When Using Guzzle?

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]);
ログイン後にコピー

例外が無効になったら、応答から HTTP ステータス コードを取得できます:

$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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!