>  기사  >  백엔드 개발  >  Guzzle을 사용할 때 처리되지 않은 예외를 어떻게 방지할 수 있나요?

Guzzle을 사용할 때 처리되지 않은 예외를 어떻게 방지할 수 있나요?

DDD
DDD원래의
2024-11-02 08:25:02520검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.