improved error check on shutdown

This commit is contained in:
Steffen Schröder 2014-05-03 22:26:49 +02:00
parent 334892c287
commit ca7d5863bf
2 changed files with 15 additions and 9 deletions

View File

@ -111,9 +111,9 @@ class ErrorHandler {
} }
/** /**
* Triggers a Debug Notice to the ManiaControl Website * Trigger a Debug Notice to the ManiaControl Website
* *
* @param $message * @param string $message
*/ */
public function triggerDebugNotice($message) { public function triggerDebugNotice($message) {
$this->handleError(self::MC_DEBUG_NOTICE, $message); $this->handleError(self::MC_DEBUG_NOTICE, $message);
@ -122,10 +122,10 @@ class ErrorHandler {
/** /**
* Error Handler * Error Handler
* *
* @param int $errorNumber * @param int $errorNumber
* @param string $errorString * @param string $errorString
* @param string $errorFile * @param string $errorFile
* @param int $errorLine * @param int $errorLine
* @return bool * @return bool
*/ */
public function handleError($errorNumber, $errorString, $errorFile = null, $errorLine = -1) { public function handleError($errorNumber, $errorString, $errorFile = null, $errorLine = -1) {
@ -263,4 +263,14 @@ class ErrorHandler {
private function shouldStopExecution($errorNumber) { private function shouldStopExecution($errorNumber) {
return ($errorNumber === E_ERROR || $errorNumber === E_USER_ERROR || $errorNumber === E_FATAL); return ($errorNumber === E_ERROR || $errorNumber === E_USER_ERROR || $errorNumber === E_FATAL);
} }
/**
* Check if the Shutdown was caused by a Fatal Error and report it
*/
public function handleShutdown() {
$error = error_get_last();
if ($error && ($error['type'] & E_FATAL)) {
$this->handleError($error['type'], $error['message'], $error['file'], $error['line']);
}
}
} }

View File

@ -302,11 +302,7 @@ class ManiaControl implements CommandListener, TimerListener {
} }
} }
// Check and Trigger Fatal Errors $this->errorHandler->handleShutdown();
$error = error_get_last();
if ($error && ($error['type'] & E_FATAL)) {
$this->errorHandler->handleError($error['type'], $error['message'], $error['file'], $error['line']);
}
// Disable Garbage Collector // Disable Garbage Collector
$this->collectGarbage(); $this->collectGarbage();