src/Zicht/Tool/Application.php
public function renderException($e, $output)
    {
        if ($output->getVerbosity() > OutputInterface::VERBOSITY_VERBOSE) {
            parent::renderException($e, $output);
        } else {
            /** @var $ancestry \Exception[] */
            $ancestry = array();
            $maxLength = 0;
            do {
                $ancestry[] = $e;
                $maxLength = max($maxLength, strlen(get_class($e)));
                $last = $e;
            } while ($e = $e->getPrevious());

            if ($last instanceof VerboseException) {
                $last->output($output);
            } else {
                $depth = 0;
                foreach ($ancestry as $e) {
                    $output->writeln(
                        sprintf(
                            '%s%-40s %s',
                            ($depth > 0 ? str_repeat('   ', $depth - 1) . '-> ' : ''),
                            '<fg=red;options=bold>' . $e->getMessage() . '</fg=red;options=bold>',
                            $depth == count($ancestry) - 1 ? str_pad('[' . get_class($e) . ']', $maxLength + 15, ' ') : ''
                        )
                    );
                    $depth++;
                }
            }
        }
        $output->writeln('[' . join('::', Debug::$scope) . ']');
    }
public function renderException($e, $output)
    {
        if ($output->getVerbosity() > OutputInterface::VERBOSITY_VERBOSE) {
            parent::renderException($e, $output);
        } else {
            /** @var $ancestry \Exception[] */
            $ancestry = array();
            $maxLength = 0;
            do {
                $ancestry[] = $e;
                $maxLength = max($maxLength, strlen(get_class($e)));
                $last = $e;
            } while ($e = $e->getPrevious());

            if ($last instanceof VerboseException) {
                $last->output($output);
            } else {
                $depth = 0;
                foreach ($ancestry as $e) {
                    $output->writeln(
                        sprintf(
                            '%s%-40s %s',
                            ($depth > 0 ? str_repeat('   ', $depth - 1) . '-> ' : ''),
                            '<fg=red;options=bold>' . $e->getMessage() . '</fg=red;options=bold>',
                            $depth == count($ancestry) - 1 ? str_pad('[' . get_class($e) . ']', $maxLength + 15, ' ') : ''
                        )
                    );
                    $depth++;
                }
            }
        }
        $output->writeln('[' . join('::', Debug::$scope) . ']');
    }
public function renderException ( $ e , $ output ) { if ( $ output -> getVerbosity ( ) > OutputInterface :: VERBOSITY_VERBOSE ) { parent :: renderException ( $ e , $ output ) ; } else { /** @var $ancestry \Exception[] */ $ ancestry = array ( ) ; $ maxLength = 0 ; do { $ ancestry [ ] = $ e ; $ maxLength = max ( $ maxLength , strlen ( get_class ( $ e ) ) ) ; $ last = $ e ; } while ( $ e = $ e -> getPrevious ( ) ) ; if ( $ last instanceof VerboseException ) { $ last -> output ( $ output ) ; } else { $ depth = 0 ; foreach ( $ ancestry as $ e ) { $ output -> writeln ( sprintf ( '%s%-40s %s' , ( $ depth > 0 ? str_repeat ( '   ' , $ depth - 1 ) . '-> ' : '' ) , '<fg=red;options=bold>' . $ e -> getMessage ( ) . '</fg=red;options=bold>' , $ depth == count ( $ ancestry ) - 1 ? str_pad ( '[' . get_class ( $ e ) . ']' , $ maxLength + 15 , ' ' ) : '' ) ) ; $ depth ++ ; } } } $ output -> writeln ( '[' . join ( '::' , Debug :: $ scope ) . ']' ) ; }
Custom exception rendering, renders only the exception types and messages, hierarchically, but with regular
formatting if verbosity is higher.

@param \Exception $e
@param \Symfony\Component\Console\Output\OutputInterface $output
@return void
Custom exception rendering renders only the exception types and messages hierarchically but with regular formatting if verbosity is higher .