X-Git-Url: https://git.mxchange.org/?p=shipsimu.git;a=blobdiff_plain;f=ship-simu%2Finc%2Fclasses%2Fexceptions%2Fclass_FrameworkException.php;fp=ship-simu%2Finc%2Fclasses%2Fexceptions%2Fclass_FrameworkException.php;h=23e63537305f1d82011ed8af1de8bb3b77086eee;hp=0000000000000000000000000000000000000000;hb=85db0cda2cdb5a801db7020aa55b6f4d969f7674;hpb=6f7c99239b34b8ff5e05d719ea24dd213f03f955 diff --git a/ship-simu/inc/classes/exceptions/class_FrameworkException.php b/ship-simu/inc/classes/exceptions/class_FrameworkException.php new file mode 100644 index 0000000..23e6353 --- /dev/null +++ b/ship-simu/inc/classes/exceptions/class_FrameworkException.php @@ -0,0 +1,80 @@ + + * @version 1.0 + */ +abstract class FrameworkException extends ReflectionException { + /** + * Array for the backtrace + */ + private $backTrace = array(); + + /** + * The super constructor for all exceptions + * + * @param $message The non-optional message for the exception + * @param $code An optional code for better debugging + * @return void + */ + public function __construct($message, $code = 0) { + // Extract backtrace + $this->saveBackTrace(); + + // Cast all data + $message = (string) $message; + $code = (int) $code; + + // make sure everything is assigned properly + parent::__construct($message, $code); + } + + /** + * Save the current backtrace + * + * @return void + */ + private final function saveBackTrace () { + $this->backTrace = debug_backtrace(); + } + + /** + * Get saved backtrace + * + * @return $backTrace The full backtrace in an array + */ + public final function getBackTrace () { + return $this->backTrace; + } + + /** + * Returns the name of the thrown exception + * + * @return $toString The name of the thrown exception + */ + public function __toString() { + return get_class($this); + } + + /** + * Getter for hex-decimal code + * + * @return $hexCode The exception code in hex-decimal format + */ + public final function getHexCode () { + // Get the decimal code + $code = $this->getCode(); + + // Format it to hex-decimal, 0x as prefix and 3 chars + $hexCode = sprintf("0x%03s", dechex($code)); + + // Return it + return $hexCode; + } +} + +// [EOF] +?>