Requests HTTP Status Exceptions

Exception classes for HTTP response status codes.

Source files:

  • wp-includes/Requests/src/Exception/Http.php
  • wp-includes/Requests/src/Exception/Http/Status*.php
  • wp-includes/Requests/src/Exception/Http/StatusUnknown.php

WpOrgRequestsExceptionHttp

Base class for HTTP status code exceptions.

Namespace: WpOrgRequestsException
Package: RequestsExceptions
Extends: WpOrgRequestsException

Properties

PropertyTypeDefaultDescription
$codeint0HTTP status code
$reasonstring'Unknown'Reason phrase

Methods

__construct()

php
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()

php
public function getReason(): string

Returns the reason phrase.

get_class()

Get the appropriate exception class for an HTTP status code.

php
public static function get_class( int|bool $code ): string
ParameterTypeDescription
$codeint|boolHTTP 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

PropertyDefault
$code0
$reason'Unknown'

__construct()

php
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

ClassCodeReason
Status304304Not Modified
Status305305Use Proxy
Status306306Switch Proxy

4xx Client Errors

ClassCodeReason
Status400400Bad Request
Status401401Unauthorized
Status402402Payment Required
Status403403Forbidden
Status404404Not Found
Status405405Method Not Allowed
Status406406Not Acceptable
Status407407Proxy Authentication Required
Status408408Request Timeout
Status409409Conflict
Status410410Gone
Status411411Length Required
Status412412Precondition Failed
Status413413Request Entity Too Large
Status414414Request-URI Too Large
Status415415Unsupported Media Type
Status416416Requested Range Not Satisfiable
Status417417Expectation Failed
Status418418I’m A Teapot
Status428428Precondition Required
Status429429Too Many Requests
Status431431Request Header Fields Too Large

5xx Server Errors

ClassCodeReason
Status500500Internal Server Error
Status501501Not Implemented
Status502502Bad Gateway
Status503503Service Unavailable
Status504504Gateway Timeout
Status505505HTTP Version Not Supported
Status511511Network Authentication Required

Special

ClassCodeReasonNotes
StatusUnknown0UnknownSets code from Response object if available

Usage

php
// 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'