本文整理汇总了PHP中Symfony\Component\Console\Event\ConsoleExceptionEvent::getException方法的典型用法代码示例。如果您正苦于以下问题:PHP ConsoleExceptionEvent::getException方法的具体用法?PHP ConsoleExceptionEvent::getException怎么用?PHP ConsoleExceptionEvent::getException使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symfony\Component\Console\Event\ConsoleExceptionEvent
的用法示例。
在下文中一共展示了ConsoleExceptionEvent::getException方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: onConsoleException
/**
* Logs exception events for AcmePhp commands.
*
* @param ConsoleExceptionEvent $event
*/
public function onConsoleException(ConsoleExceptionEvent $event)
{
if (!$this->isAcmePhpCommand($event->getCommand())) {
return;
}
$this->logger->error('Exception thrown while running command "{command}". Message: "{message}".', ['command' => $event->getCommand()->getName(), 'message' => $event->getException()->getMessage(), 'exception' => $event->getException()]);
}
示例2: onException
/**
* React to any console exceptions.
*
* @param ConsoleExceptionEvent $event
*/
public function onException(ConsoleExceptionEvent $event)
{
$exception = $event->getException();
// Replace Guzzle connect exceptions with a friendlier message. This
// also prevents the user from seeing two exceptions (one direct from
// Guzzle, one from RingPHP).
if ($exception instanceof ConnectException && strpos($exception->getMessage(), 'cURL error 6') !== false) {
$request = $exception->getRequest();
$event->setException(new ConnectionFailedException("Failed to connect to host: " . $request->getHost() . " \nRequest URL: " . $request->getUrl() . " \nPlease check your Internet connection"));
$event->stopPropagation();
}
// Handle Guzzle client exceptions, i.e. HTTP 4xx errors.
if ($exception instanceof ClientException && ($response = $exception->getResponse())) {
$request = $exception->getRequest();
try {
$response->getBody()->seek(0);
$json = $response->json();
} catch (ParseException $e) {
$json = [];
}
// Create a friendlier message for the OAuth2 "Invalid refresh token"
// error.
if ($response->getStatusCode() === 400 && isset($json['error_description']) && $json['error_description'] === 'Invalid refresh token') {
$event->setException(new LoginRequiredException("Invalid refresh token: please log in again." . " \nRequest URL: " . $request->getUrl()));
$event->stopPropagation();
} elseif ($response->getStatusCode() === 401) {
$event->setException(new LoginRequiredException("Unauthorized: please log in again." . " \nRequest URL: " . $request->getUrl()));
$event->stopPropagation();
}
}
}
示例3: onConsoleException
public function onConsoleException(ConsoleExceptionEvent $event)
{
$command = $event->getCommand();
$exception = $event->getException();
$message = sprintf('%s: %s (uncaught exception) at %s line %s while running console command `%s`', get_class($exception), $exception->getMessage(), $exception->getFile(), $exception->getLine(), $command->getName());
$this->logger->error($message, array('exception' => $exception));
}
示例4: onConsoleException
public function onConsoleException(ConsoleExceptionEvent $event)
{
$exception = $event->getException();
//This listener only wants to deal with this particular Exception
if (!$exception instanceof \GoCardless\Enterprise\Exceptions\ApiException) {
return;
}
$output = $event->getOutput();
$rawReasonPhrase = $exception->getReasonPhrase();
$data = json_decode($rawReasonPhrase, true);
$exceptionName = get_class($exception);
$gocardlessErrorMessage = isset($data['error']['message']) ? $data['error']['message'] : 'No Gocardless error available';
$fieldErrors = isset($data['error']['errors']) ? $data['error']['errors'] : array();
$output->writeln("");
$output->writeln("Exception: {$exceptionName}");
$output->writeln("---------");
$output->writeln("Gocardless error message: {$gocardlessErrorMessage}");
if ($fieldErrors) {
$output->writeln("");
$output->writeln("Field Specific error messages");
}
foreach ($fieldErrors as $error) {
$output->writeln("");
foreach ($error as $k => $e) {
$output->writeln("{$k}: {$e}");
}
$output->writeln("-----------");
}
$output->writeln("LOOK ABOVE FOR MORE INFORMATION ABOUT THIS EXCEPTION");
}
示例5: onConsoleException
/**
* Logs console exception
*
* @param ConsoleExceptionEvent $event The event
*
* @return void
*/
public function onConsoleException(ConsoleExceptionEvent $event)
{
$exception = $event->getException();
$exitCode = $event->getExitCode();
$message = sprintf('%s: "%s" at %s line %s', get_class($exception), $exception->getMessage(), $exception->getFile(), $exception->getLine());
$this->logger->error($message, ['exit_code' => $exitCode, 'exception' => $exception]);
}
示例6: onConsoleException
/**
* Method for handling the actual exceptions
*
* @param \Symfony\Component\Console\Event\ConsoleExceptionEvent $event [description]
*/
public function onConsoleException(ConsoleExceptionEvent $event)
{
$command = $event->getCommand();
$exception = $event->getException();
$this->client->notifyOnException($exception);
error_log(sprintf("command:%s has thrown %s in: %s:%d", $command->getName(), $exception->getMessage(), $exception->getFile(), $exception->getLine()));
}
示例7:
function it_reports_exception_on_console_exception(Notifier $notifier, \Exception $exception, ConsoleExceptionEvent $event)
{
$this->setException($exception);
$event->getException()->willReturn($exception);
$notifier->reportException($exception)->shouldBeCalled();
$this->onConsoleException($event);
}
示例8: onConsoleException
public function onConsoleException(ConsoleExceptionEvent $event)
{
$command = $event->getCommand();
if (in_array($command->getName(), ['dz:notification:on_day_end'], TRUE)) {
$exception = $event->getException();
$message = sprintf('`%s` [uncaught exception]: command `%s` throws `%s` at `%s` line `%s`', get_class($exception), $command->getName(), $exception->getMessage(), $exception->getFile(), $exception->getLine());
$this->logger->error($message, ['exception' => $exception]);
}
}
示例9: onConsoleException
/**
* @param ConsoleExceptionEvent $event
*/
public function onConsoleException(ConsoleExceptionEvent $event)
{
$exception = $event->getException();
$metadata = new Metadata();
$metadata->addMetadatum('commandName', $event->getInput()->getFirstArgument());
$metadata->addMetadatum('command', (string) $event->getInput());
$metadata->addMetadatum('exitCode', $event->getExitCode());
$this->errorHandler->handleException($exception, $metadata);
}
示例10: onConsoleException
/**
* @param ConsoleExceptionEvent $event
*/
public function onConsoleException(ConsoleExceptionEvent $event)
{
$command = $event->getCommand();
$exception = $event->getException();
// Log error with trace
$trace = MAUTIC_ENV == 'dev' ? "\n[stack trace]\n" . $exception->getTraceAsString() : '';
$message = sprintf('%s: %s (uncaught exception) at %s line %s while running console command `%s`%s', get_class($exception), $exception->getMessage(), $exception->getFile(), $exception->getLine(), $command->getName(), $trace);
// Use notice so it makes it to the log all "perttified" (using error spits it out to console and not the log)
$this->logger->notice($message);
}
示例11: onKernelException
/**
* @param GetResponseForExceptionEvent|ConsoleExceptionEvent $event
*/
public function onKernelException($event)
{
$exception = $event->getException();
foreach ($this->ignoredExceptions as $ignoredException) {
if ($exception instanceof $ignoredException) {
return;
}
}
$this->notifier->notify($exception);
}
示例12: onConsoleError
/**
* @param ConsoleExceptionEvent $event
*/
public function onConsoleError(ConsoleExceptionEvent $event)
{
$exception = $event->getException();
$command = $event->getCommand();
$output = $event->getOutput();
$this->logger->error(sprintf("error while executing %s -> %s", $command->getName(), $exception->getMessage()));
if ($this->config->get("common/debug")) {
return;
}
$output->writeln(sprintf("error while executing %s -> %s", $command->getName(), $exception->getMessage()));
}
示例13: on_exception
/**
* This listener is run when the ConsoleEvents::EXCEPTION event is triggered.
* It translate the exception message. If din debug mode the original exception is embedded.
*
* @param ConsoleExceptionEvent $event
*/
public function on_exception(ConsoleExceptionEvent $event)
{
$original_exception = $event->getException();
if ($original_exception instanceof exception_interface) {
$parameters = array_merge(array($original_exception->getMessage()), $original_exception->get_parameters());
$message = call_user_func_array(array($this->language, 'lang'), $parameters);
if ($this->debug) {
$exception = new \RuntimeException($message, $original_exception->getCode(), $original_exception);
} else {
$exception = new \RuntimeException($message, $original_exception->getCode());
}
$event->setException($exception);
}
}
示例14: onConsoleException
public function onConsoleException(ConsoleExceptionEvent $event)
{
$exception = $event->getException();
$exceptionId = $this->appName . '-' . md5(microtime());
$logData = array('exception' => $exception, 'exceptionId' => $exceptionId);
// exception is by default Application Exception
$isUserException = false;
// SyrupExceptionInterface holds additional data
if ($exception instanceof SyrupExceptionInterface) {
$logData['data'] = $exception->getData();
$isUserException = $exception->getStatusCode() < 500;
}
// Log exception
$method = $isUserException ? 'error' : 'critical';
$this->logger->{$method}($exception->getMessage(), $logData);
}
示例15: onException
/**
* React to any console exceptions.
*
* @param ConsoleExceptionEvent $event
*/
public function onException(ConsoleExceptionEvent $event)
{
$exception = $event->getException();
// Replace Guzzle connect exceptions with a friendlier message. This
// also prevents the user from seeing two exceptions (one direct from
// Guzzle, one from RingPHP).
if ($exception instanceof ConnectException && strpos($exception->getMessage(), 'cURL error 6') !== false) {
$request = $exception->getRequest();
$event->setException(new ConnectionFailedException("Failed to connect to host: " . $request->getHost() . " \nPlease check your Internet connection.", $request));
$event->stopPropagation();
}
// Handle Guzzle client exceptions, i.e. HTTP 4xx errors.
if ($exception instanceof ClientException && ($response = $exception->getResponse())) {
$request = $exception->getRequest();
try {
$response->getBody()->seek(0);
$json = $response->json();
} catch (ParseException $e) {
$json = [];
}
// Create a friendlier message for the OAuth2 "Invalid refresh token"
// error.
if ($response->getStatusCode() === 400 && isset($json['error_description']) && $json['error_description'] === 'Invalid refresh token') {
$event->setException(new LoginRequiredException("Invalid refresh token: please log in again.", $request));
$event->stopPropagation();
} elseif ($response->getStatusCode() === 401) {
$event->setException(new LoginRequiredException("Unauthorized: please log in again.", $request));
$event->stopPropagation();
} elseif ($response->getStatusCode() === 403) {
$event->setException(new PermissionDeniedException("Permission denied. Check your project or environment permissions.", $request));
$event->stopPropagation();
}
}
// When an environment is found to be in the wrong state, perhaps our
// cache is old - we should invalidate it.
if ($exception instanceof EnvironmentStateException) {
$command = $event->getCommand();
if ($command instanceof PlatformCommand) {
$command->clearEnvironmentsCache();
}
}
}