Example #1
0
 private function renderException(\Exception $exception)
 {
     if ($exception instanceof ErrorException) {
         fwrite(STDERR, sprintf("ErrorException: %s \n", $exception->getErrorName()));
     } else {
         fwrite(STDERR, sprintf("Exception: %s (Code: %d)\n", get_class($exception), $exception->getCode()));
     }
     fwrite(STDERR, sprintf("Location: %s (Line %d)\n\n", $exception->getFile(), $exception->getLine()));
     fwrite(STDERR, $exception->getMessage() . "\n\n");
     if ($exception instanceof HasFileInfoException) {
         fwrite(STDERR, "\nException occured while processing file: " . $exception->getFile() . "\n\n");
     }
     $trace = $exception->getTrace();
     array_shift($trace);
     if (count($trace) == 0) {
         fwrite(STDERR, 'No stacktrace available');
     }
     foreach ($trace as $pos => $entry) {
         fwrite(STDERR, sprintf('#%1$d %2$s(%3$d): %4$s%5$s%6$s()' . "\n", $pos, isset($entry['file']) ? $entry['file'] : 'unknown', isset($entry['line']) ? $entry['line'] : '0', isset($entry['class']) ? $entry['class'] : '', isset($entry['type']) ? $entry['type'] : '', isset($entry['function']) ? $entry['function'] : ''));
     }
     $nested = $exception->getPrevious();
     if ($nested !== NULL) {
         fwrite(STDERR, "\n\n");
         $this->renderException($nested);
     }
 }