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(); }