Esempio n. 1
0
 public static function HandleError($intErrorNumber, $strErrorString, $strErrorFile, $intErrorLine)
 {
     // If a command is called with "@", then we should return
     if (error_reporting() == 0) {
         return;
     }
     // If we still have access to QApplicationBase, set the error flag on the Application
     if (class_exists('QApplicationBase')) {
         QApplicationBase::$ErrorFlag = true;
     }
     // If we are currently dealing with reporting an error, don't go on
     if (QErrorHandler::$Type) {
         return;
     }
     // Setup the QErrorHandler Object
     QErrorHandler::$Type = 'Exception';
     QErrorHandler::$Message = $strErrorString;
     QErrorHandler::$Filename = $strErrorFile;
     QErrorHandler::$LineNumber = $intErrorLine;
     switch ($intErrorNumber) {
         case E_ERROR:
             QErrorHandler::$ObjectType = 'E_ERROR';
             break;
         case E_WARNING:
             QErrorHandler::$ObjectType = 'E_WARNING';
             break;
         case E_PARSE:
             QErrorHandler::$ObjectType = 'E_PARSE';
             break;
         case E_NOTICE:
             QErrorHandler::$ObjectType = 'E_NOTICE';
             break;
         case E_STRICT:
             QErrorHandler::$ObjectType = 'E_STRICT';
             break;
         case E_CORE_ERROR:
             QErrorHandler::$ObjectType = 'E_CORE_ERROR';
             break;
         case E_CORE_WARNING:
             QErrorHandler::$ObjectType = 'E_CORE_WARNING';
             break;
         case E_COMPILE_ERROR:
             QErrorHandler::$ObjectType = 'E_COMPILE_ERROR';
             break;
         case E_COMPILE_WARNING:
             QErrorHandler::$ObjectType = 'E_COMPILE_WARNING';
             break;
         case E_USER_ERROR:
             QErrorHandler::$ObjectType = 'E_USER_ERROR';
             break;
         case E_USER_WARNING:
             QErrorHandler::$ObjectType = 'E_USER_WARNING';
             break;
         case E_USER_NOTICE:
             QErrorHandler::$ObjectType = 'E_USER_NOTICE';
             break;
         default:
             QErrorHandler::$ObjectType = 'Unknown';
             break;
     }
     // Setup the Stack Trace
     QErrorHandler::$StackTrace = "";
     $objBackTrace = debug_backtrace();
     for ($intIndex = 0; $intIndex < count($objBackTrace); $intIndex++) {
         $objItem = $objBackTrace[$intIndex];
         $strKeyFile = array_key_exists('file', $objItem) ? $objItem['file'] : '';
         $strKeyLine = array_key_exists('line', $objItem) ? $objItem['line'] : '';
         $strKeyClass = array_key_exists('class', $objItem) ? $objItem['class'] : '';
         $strKeyType = array_key_exists('type', $objItem) ? $objItem['type'] : '';
         $strKeyFunction = array_key_exists('function', $objItem) ? $objItem['function'] : '';
         QErrorHandler::$StackTrace .= sprintf("#%s %s(%s): %s%s%s()\n", $intIndex, $strKeyFile, $strKeyLine, $strKeyClass, $strKeyType, $strKeyFunction);
     }
     QErrorHandler::Run();
 }