| [ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 <?php 2 3 declare (strict_types=1); 4 namespace WordPress\AiClient\Providers\Http\Exception; 5 6 use WordPress\AiClient\Common\Exception\RuntimeException; 7 use WordPress\AiClient\Providers\Http\DTO\Response; 8 use WordPress\AiClient\Providers\Http\Util\ErrorMessageExtractor; 9 /** 10 * Exception thrown for 5xx HTTP server errors. 11 * 12 * This represents errors where the server failed to fulfill 13 * a valid request due to internal server errors. 14 * 15 * @since 0.2.0 16 */ 17 class ServerException extends RuntimeException 18 { 19 /** 20 * Creates a ServerException from a server error response. 21 * 22 * This method extracts error details from common API response formats 23 * and creates an exception with a descriptive message and status code. 24 * 25 * @since 0.2.0 26 * 27 * @param Response $response The HTTP response that failed. 28 * @return self 29 */ 30 public static function fromServerErrorResponse(Response $response): self 31 { 32 $statusCode = $response->getStatusCode(); 33 $statusTexts = [500 => 'Internal Server Error', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Timeout', 507 => 'Insufficient Storage', 529 => 'Overloaded']; 34 if (isset($statusTexts[$statusCode])) { 35 $errorMessage = sprintf('%s (%d)', $statusTexts[$statusCode], $statusCode); 36 } else { 37 $errorMessage = sprintf('Server error (%d): Request was rejected due to server-side issue', $statusCode); 38 } 39 // Extract error message from response data using centralized utility 40 $extractedError = ErrorMessageExtractor::extractFromResponseData($response->getData()); 41 if ($extractedError !== null) { 42 $errorMessage .= ' - ' . $extractedError; 43 } 44 return new self($errorMessage, $response->getStatusCode()); 45 } 46 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated : Sat Jun 13 09:38:55 2026 | Cross-referenced by PHPXref |