From f215b49d9fd8ad0559655639d5333e2ea47f4939 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Sun, 19 Feb 2023 00:49:57 +0100 Subject: [PATCH] Continued: - exit; means normal exit of program --- application/tests/exceptions.php | 10 +++++++++- .../main/classes/class_BaseFrameworkSystem.php | 6 +++--- index.php | 15 ++++++++------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/application/tests/exceptions.php b/application/tests/exceptions.php index a3037971..06acedd4 100644 --- a/application/tests/exceptions.php +++ b/application/tests/exceptions.php @@ -34,6 +34,9 @@ function core_exception_handler ($exceptionInstance) { // Init variable $backTrace = ''; + // Generate exception code + $exceptionCode = ($exceptionInstance instanceof FrameworkException ? $exceptionInstance->getHexCode() : '0x' . bin2hex($exceptionInstance->getCode())); + // Get all call levels from backtrace foreach ($exceptionInstance->getTrace() as $idx => $traceArray) { // Init argument string @@ -84,7 +87,7 @@ Backtrace: --------------------------------------------------------------------------------\n", trim(html_entity_decode(strip_tags(get_class($exceptionInstance)))), trim(html_entity_decode(strip_tags($exceptionInstance->getMessage()))), - ($exceptionInstance instanceof FrameworkException ? $exceptionInstance->getHexCode() : '0x' . bin2hex($exceptionInstance->getCode())), + $exceptionCode, $exceptionInstance->getFile(), $exceptionInstance->getLine(), trim($backTrace) @@ -92,9 +95,13 @@ Backtrace: // Output the message print($message); + + // Exit with code + exit(hexdec($exceptionCode)); } elseif (is_object($exceptionInstance)) { // Output more details printf('exceptionInstance=%s', print_r($exceptionInstance, true)); + exit(255); } else { /* * Invalid exception instance detected! Do *only* throw exceptions that @@ -102,6 +109,7 @@ Backtrace: * outputs like above. */ printf('exceptionInstance[]=%s is invalid! Please inform the core developer team.' . PHP_EOL, gettype($exceptionInstance)); + exit(255); } } diff --git a/framework/main/classes/class_BaseFrameworkSystem.php b/framework/main/classes/class_BaseFrameworkSystem.php index e77f645c..3920db4c 100644 --- a/framework/main/classes/class_BaseFrameworkSystem.php +++ b/framework/main/classes/class_BaseFrameworkSystem.php @@ -194,7 +194,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac } else { // Do not call this twice trigger_error(__METHOD__ . ': Called twice.'); - exit; + exit(255); } } @@ -566,7 +566,7 @@ Loaded includes: } else { // Trigger an error trigger_error($stubMessage); - exit; + exit(255); } } @@ -841,7 +841,7 @@ Loaded includes: } else { // Trigger an error trigger_error($message . "
\n"); - exit; + exit(255); } } else { // @TODO Finish this part! diff --git a/index.php b/index.php index 51a9f475..94177e30 100644 --- a/index.php +++ b/index.php @@ -62,7 +62,8 @@ final class ApplicationEntryPoint { // Is this method already called? if (isset($GLOBALS['app_die_called'])) { // Then output the text directly - exit($message); + print $message . PHP_EOL; + exit(255); } // This method shall not be called twice @@ -80,7 +81,7 @@ final class ApplicationEntryPoint { // Do we have debug installation? if (($configInstance->getConfigEntry('product_install_mode') == 'productive') || ($silentMode === true)) { // Abort here - exit; + exit(255); } // Get some instances @@ -173,16 +174,16 @@ final class ApplicationEntryPoint { $responseInstance->flushBuffer(); } catch (FileNotFoundException $e) { // Even the template 'emergency_exit' wasn't found so output both message - exit($message . ', exception: ' . $e->getMessage()); + print ($message . ', exception: ' . $e->getMessage() . PHP_EOL); + exit($e->getCode()); } // Good bye... - exit; + exit(255); } else { // Output message and die - die(sprintf('[Main:] Emergency exit reached: %s', - $message - )); + printf('[Main:] Emergency exit reached: %s', $message); + exit(255); } } -- 2.39.5