write(__d('cake_console', "Error: %s\n%s",
$exception->getMessage(),
$exception->getTraceAsString()
));
$code = $exception->getCode();
$code = ($code && is_int($code)) ? $code : 1;
return $this->_stop($code);
}
/**
* Handle errors in the console environment. Writes errors to stderr,
* and logs messages if Configure::read('debug') is 0.
*
* @param int $code Error code
* @param string $description Description of the error.
* @param string $file The file the error occurred in.
* @param int $line The line the error occurred on.
* @param array $context The backtrace of the error.
* @return void
*/
public function handleError($code, $description, $file = null, $line = null, $context = null) {
if (error_reporting() === 0) {
return;
}
$stderr = static::getStderr();
list($name, $log) = ErrorHandler::mapErrorCode($code);
$message = __d('cake_console', '%s in [%s, line %s]', $description, $file, $line);
$stderr->write(__d('cake_console', "%s Error: %s\n", $name, $message));
if (!Configure::read('debug')) {
CakeLog::write($log, $message);
}
if ($log === LOG_ERR) {
return $this->_stop(1);
}
}
/**
* Wrapper for exit(), used for testing.
*
* @param int $code The exit code.
* @return void
*/
protected function _stop($code = 0) {
exit($code);
}
}