Exception thrown for network-related errors.
Description
This includes HTTP transport errors, connection failures, timeouts, and other network-related issues.
Methods
| Name | Description |
|---|---|
| NetworkException::fromPsr18NetworkException | Creates a NetworkException from a PSR-18 network exception. |
| NetworkException::getRequest | Returns the request that failed as our Request DTO. |
Source
class NetworkException extends RuntimeException
{
/**
* The request that failed.
*
* @var Request|null
*/
protected ?Request $request = null;
/**
* Returns the request that failed as our Request DTO.
*
* @since 0.2.0
*
* @return Request
* @throws \RuntimeException If no request is available
*/
public function getRequest(): Request
{
if ($this->request === null) {
throw new \RuntimeException('Request object not available. This exception was directly instantiated. ' . 'Use a factory method that provides request context.');
}
return $this->request;
}
/**
* Creates a NetworkException from a PSR-18 network exception.
*
* @since 0.2.0
*
* @param RequestInterface $psrRequest The PSR-7 request that failed.
* @param \Throwable $networkException The PSR-18 network exception.
* @return self
*/
public static function fromPsr18NetworkException(RequestInterface $psrRequest, \Throwable $networkException): self
{
$request = Request::fromPsrRequest($psrRequest);
$message = sprintf('Network error occurred while sending request to %s: %s', $request->getUri(), $networkException->getMessage());
$exception = new self($message, 0, $networkException);
$exception->request = $request;
return $exception;
}
}
Changelog
| Version | Description |
|---|---|
| 0.2.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.