WP_AI_Client_Prompt_Builder::exception_to_wp_error( Exception $e ): WP_Error

This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only by core. It is listed here for completeness.

Converts an exception into a WP_Error with a structured error code and message.

Description

This method maps different exception types to specific WP_Error codes and HTTP status codes.
The presence of the status codes means these WP_Error objects can be easily used in REST API responses or other contexts where HTTP semantics are relevant.

Parameters

$eExceptionrequired
The exception to convert.

Return

WP_Error The resulting WP_Error object.

Source

private function exception_to_wp_error( Exception $e ): WP_Error {
	if ( $e instanceof NetworkException ) {
		$error_code  = 'prompt_network_error';
		$status_code = 503;
	} elseif ( $e instanceof ClientException ) {
		// `ClientException` uses HTTP status codes as exception codes, so we can rely on them.
		$error_code  = 'prompt_client_error';
		$status_code = $e->getCode() ? $e->getCode() : 400;
	} elseif ( $e instanceof ServerException ) {
		// `ServerException` uses HTTP status codes as exception codes, so we can rely on them.
		$error_code  = 'prompt_upstream_server_error';
		$status_code = $e->getCode() ? $e->getCode() : 500;
	} elseif ( $e instanceof TokenLimitReachedException ) {
		$error_code  = 'prompt_token_limit_reached';
		$status_code = 400;
	} elseif ( $e instanceof InvalidArgumentException ) {
		$error_code  = 'prompt_invalid_argument';
		$status_code = 400;
	} else {
		$error_code  = 'prompt_builder_error';
		$status_code = 500;
	}

	return new WP_Error(
		$error_code,
		$e->getMessage(),
		array(
			'status'          => $status_code,
			'exception_class' => get_class( $e ),
		)
	);
}

Changelog

VersionDescription
7.0.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.