WP_AI_Client_Prompt_Builder::exception_to_wp_errorprivateWP 7.0.0

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.

Метод класса: WP_AI_Client_Prompt_Builder{}

Хуков нет.

Возвращает

WP_Error. The resulting WP_Error object.

Использование

// private - только в коде основоного (родительского) класса
$result = $this->exception_to_wp_error( $e ): WP_Error;
$e(Exception) (обязательный)
The exception to convert.

Список изменений

С версии 7.0.0 Введена.

Код WP_AI_Client_Prompt_Builder::exception_to_wp_error() 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 ),
		)
	);
}