. * */ namespace SP; defined('APP_ROOT') || die(_('No es posible acceder directamente a este archivo')); /** * Extender la clase Exception para mostrar ayuda en los mensajes */ class SPException extends \Exception{ /** * Constantes para tipos de excepción */ const SP_OK = 0; const SP_CRITICAL = 1; const SP_WARNING = 2; /** * @var int Tipo de excepción */ private $_type = 0; /** * @var string Ayuda de la excepción */ private $_hint = ''; public function __construct($type, $message, $hint = '', $code = 0, \Exception $previous = null) { $this->_type = $type; $this->_hint = $hint; parent::__construct($message, $code, $previous); } public function __toString() { return __CLASS__ . ": [{$this->code}]: {$this->message} ({$this->_hint})\n"; } public function getHint() { return $this->_hint; } public function getType() { return $this->_type; } public static function getExceptionTypeName($type){ $typeName = array( self::SP_OK => 'ok', self::SP_CRITICAL => 'critical', self::SP_WARNING => 'warning' ); return $typeName[$type]; } }