WP_CLI::error()public staticWP-CLI 1.0

Выводит сообщение об ошибке с префиксом "Error:" в STDERR и завершает процесс с кодом выхода 1.

Сообщение всегда пишется в STDERR, поэтому его можно корректно перенаправлять отдельно от обычного вывода.

По умолчанию команда завершится с кодом 1; если требуется продолжить выполнение, используйте второй аргумент false или WP_CLI::warning().

Конкретный код выхода можно передать вторым аргументом. Или можно использовать WP_CLI::halt() для управляемой остановки.

Для нефатальных ситуаций лучше использовать WP_CLI::warning().

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

Хуков нет.

Возвращает

null. Ничего не возвращает; используется для логирования ошибки и опционального завершения процесса.

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

$result = WP_CLI::error( $message, $exit );
$message(string|WP_Error|Exception|Throwable) (обязательный)

Сообщение об ошибке или объект ошибки, которое будет выведено в STDERR с префиксом "Error:".

Принимает строку, объект WP_Error или любой Throwable. Удобно для единообразного вывода фатальных ошибок в собственных WP‑CLI командах.

$exit(true|false|int)

Позволяет управлять завершением:

  • true — завершить с кодом 1.
  • false — не завершать, просто записать ошибку и продолжить выполнение.
  • число ≥ 1 — завершить с указанным кодом.

По умолчанию: true

Примеры

0

#1 Демо

Выводит ошибку и завершает выполнение, если не удалось сбросить объектный кеш.

if ( false === wp_cache_flush() ) {
	WP_CLI::error( 'The object cache could not be flushed.' );
}
0

#2 Явный код выхода

Завершает выполнение с заданным кодом (например, 3).

if ( $has_conflicts ) {
	WP_CLI::error( 'Conflicts detected. Aborting.', 3 );
}
0

#3 Передача WP_Error и продолжение выполнения

Логирует содержимое WP_Error и не прерывает процесс. Однако для нефатальных случаев предпочтительнее WP_CLI::warning().

$error = new WP_Error( 'invalid_data', 'Invalid payload received.' );

WP_CLI::error( $error, false );

// ... остальное код команды

Код WP_CLI::error() WP-CLI 2.13.0-alpha

public static function error( $message, $exit = true ) {
	if ( null !== self::$logger && ! isset( self::get_runner()->assoc_args['completions'] ) ) {
		self::$logger->error( self::error_to_string( $message ) );
	}

	$return_code = false;
	if ( true === $exit ) {
		$return_code = 1;
	} elseif ( is_int( $exit ) && $exit >= 1 ) {
		$return_code = $exit;
	}

	if ( $return_code ) {
		if ( self::$capture_exit ) {
			throw new ExitException( '', $return_code );
		}
		exit( $return_code );
	}
}