Requests HTTP Status Exceptions
Exception classes for HTTP response status codes.
Source files:
wp-includes/Requests/src/Exception/Http.phpwp-includes/Requests/src/Exception/Http/Status*.phpwp-includes/Requests/src/Exception/Http/StatusUnknown.php
WpOrgRequestsExceptionHttp
Base class for HTTP status code exceptions.
Namespace: WpOrgRequestsException
Package: RequestsExceptions
Extends: WpOrgRequestsException
Properties
| Property | Type | Default | Description |
|---|---|---|---|
$code | int | 0 | HTTP status code |
$reason | string | 'Unknown' | Reason phrase |
Methods
__construct()
public function __construct( string|null $reason = null, mixed $data = null )If $reason is provided, overrides the default. Formats the parent message as "{code} {reason}" and sets the parent type to 'httpresponse'.
getReason()
public function getReason(): stringReturns the reason phrase.
get_class()
Get the appropriate exception class for an HTTP status code.
public static function get_class( int|bool $code ): string| Parameter | Type | Description |
|---|---|---|
$code | int|bool | HTTP status code, or false if unavailable |
Returns: Fully qualified class name. Returns StatusUnknown::class if $code is falsy or no matching Status{code} class exists.
WpOrgRequestsExceptionHttpStatusUnknown
Exception for unknown/unrecognized HTTP status codes.
Extends: WpOrgRequestsExceptionHttp
Modifier: final
| Property | Default |
|---|---|
$code | 0 |
$reason | 'Unknown' |
__construct()
public function __construct( string|null $reason = null, mixed $data = null )If $data is an instance of WpOrgRequestsResponse, sets $code from $data->status_code. Then calls the parent constructor.
HTTP Status Exception Classes
All classes below are final, extend WpOrgRequestsExceptionHttp, and override only $code and $reason. They inherit the constructor and all methods from the base class.
3xx Redirection
| Class | Code | Reason |
|---|---|---|
Status304 | 304 | Not Modified |
Status305 | 305 | Use Proxy |
Status306 | 306 | Switch Proxy |
4xx Client Errors
| Class | Code | Reason |
|---|---|---|
Status400 | 400 | Bad Request |
Status401 | 401 | Unauthorized |
Status402 | 402 | Payment Required |
Status403 | 403 | Forbidden |
Status404 | 404 | Not Found |
Status405 | 405 | Method Not Allowed |
Status406 | 406 | Not Acceptable |
Status407 | 407 | Proxy Authentication Required |
Status408 | 408 | Request Timeout |
Status409 | 409 | Conflict |
Status410 | 410 | Gone |
Status411 | 411 | Length Required |
Status412 | 412 | Precondition Failed |
Status413 | 413 | Request Entity Too Large |
Status414 | 414 | Request-URI Too Large |
Status415 | 415 | Unsupported Media Type |
Status416 | 416 | Requested Range Not Satisfiable |
Status417 | 417 | Expectation Failed |
Status418 | 418 | I’m A Teapot |
Status428 | 428 | Precondition Required |
Status429 | 429 | Too Many Requests |
Status431 | 431 | Request Header Fields Too Large |
5xx Server Errors
| Class | Code | Reason |
|---|---|---|
Status500 | 500 | Internal Server Error |
Status501 | 501 | Not Implemented |
Status502 | 502 | Bad Gateway |
Status503 | 503 | Service Unavailable |
Status504 | 504 | Gateway Timeout |
Status505 | 505 | HTTP Version Not Supported |
Status511 | 511 | Network Authentication Required |
Special
| Class | Code | Reason | Notes |
|---|---|---|---|
StatusUnknown | 0 | Unknown | Sets code from Response object if available |
Usage
// Get the right exception class for a status code
$class = WpOrgRequestsExceptionHttp::get_class(404);
// Returns 'WpOrgRequestsExceptionHttpStatus404'
// Throw with custom reason
throw new WpOrgRequestsExceptionHttpStatus404('Resource not found', $response);
// Unknown status codes
$class = WpOrgRequestsExceptionHttp::get_class(999);
// Returns 'WpOrgRequestsExceptionHttpStatusUnknown'