Exemplo n.º 1
0
 public static function handler(Exception $e)
 {
     try {
         $type = get_class($e);
         $code = $e->getCode();
         $message = $e->getMessage();
         $file = $e->getFile();
         $line = $e->getLine();
         $trace = $e->getTrace();
         if ($e instanceof ErrorException) {
             if (isset(keke_exception::$php_errors[$code])) {
                 $code = keke_exception::$php_errors[$code];
             }
             if (version_compare(PHP_VERSION, '5.3', '<')) {
                 for ($i = count($trace) - 1; $i > 0; --$i) {
                     if (isset($trace[$i - 1]['args'])) {
                         $trace[$i]['args'] = $trace[$i - 1]['args'];
                         unset($trace[$i - 1]['args']);
                     }
                 }
             }
         }
         $error = keke_exception::text($e);
         $data['type'] = $type;
         $data['code'] = $code;
         $data['message'] = $message;
         $data['file'] = $file;
         $data['line'] = $line;
         $vars = array('_SESSION', '_GET', '_POST', '_FILES', '_COOKIE', '_SERVER');
         $data['trace'] = array_reverse(keke_debug::trace($trace));
         require S_ROOT . '/control/exception.php';
         die;
     } catch (Exception $e) {
         ob_get_level() and ob_clean();
         echo keke_exception::text($e), "\n";
         exit(1);
     }
 }