. */ namespace SP\Core\Exceptions; use Exception; defined('APP_ROOT') || die(); /** * Extender la clase Exception para mostrar ayuda en los mensajes */ class SPException extends Exception { /** * Constantes para tipos de excepción */ public const OK = 0; public const CRITICAL = 1; public const WARNING = 2; public const ERROR = 3; public const INFO = 4; protected int $type; protected ?string $hint; /** * SPException constructor. * * @param string $message * @param int $type * @param string|null $hint * @param int $code * @param Exception|null $previous */ public function __construct( string $message, int $type = self::ERROR, ?string $hint = null, int $code = 0, Exception $previous = null ) { $this->type = $type; $this->hint = $hint; parent::__construct($message, $code, $previous); } /** * @return string */ public function __toString() { return __CLASS__.": [{$this->code}]: {$this->message} ({$this->hint})\n"; } public function getHint(): ?string { return $this->hint; } /** * @return int|string */ public function getType(): int|string { return $this->type; } }