WP_AI_Client_Prompt_Builder::exception_to_wp_error
Converts an exception into a WP_Error with a structured error code and message.
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.
Method of the class: WP_AI_Client_Prompt_Builder{}
No Hooks.
Returns
WP_Error. The resulting WP_Error object.
Usage
// private - for code of main (parent) class only $result = $this->exception_to_wp_error( $e ): WP_Error;
- $e(Exception) (required)
- The exception to convert.
Changelog
| Since 7.0.0 | Introduced. |
WP_AI_Client_Prompt_Builder::exception_to_wp_error() WP AI Client Prompt Builder::exception to wp error code WP 7.0
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 ),
)
);
}