File "exception.php"

Full Path: /home/asmplong/www/ancien-site-2019/site/libraries/joomla/document/error/exception.php
File size: 6.98 KB
MIME-type: text/x-php
Charset: utf-8

<?php
/**
 * @package     Joomla.Platform
 * @subpackage  Error
 *
 * @copyright   Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * Joomla! Exception object.
 *
 * @package     Joomla.Platform
 * @subpackage  Error
 * @deprecated
 * @since       11.1
 */
class JException extends Exception
{
	/**
	 * Error level
	 * @var    string
	 * @since  11.1
	 */
	protected $level		= null;

	/**
	 * Error code
	 * @var    string
	 * @since  11.1
	 */
	protected $code = null;

	/**
	 * Error message
	 * @var    string
	 * @since  11.1
	 */
	protected $message = null;

	/**
	 * Additional info about the error relevant to the developer,
	 * for example, if a database connect fails, the dsn used
	 * @var    string
	 * @since  11.1
	 */
	protected $info = '';

	/**
	 * Name of the file the error occurred in [Available if backtrace is enabled]
	 * @var    string
	 * @since  11.1
	 */
	protected $file = null;

	/**
	 * Line number the error occurred in [Available if backtrace is enabled]
	 * @var    int
	 * @since  11.1
	 */
	protected $line = 0;

	/**
	 * Name of the method the error occurred in [Available if backtrace is enabled]
	 * @var    string
	 * @since  11.1
	 */
	protected $function	= null;

	/**
	 * Name of the class the error occurred in [Available if backtrace is enabled]
	 * @var    string
	 * @since  11.1
	 */
	protected $class = null;

	/**
	 * Error type
	 * @var    string
	 * @since  11.1
	 */
	protected	$type		= null;

	/**
	 * Arguments recieved by the method the error occurred in [Available if backtrace is enabled]
	 * @var    array
	 * @since  11.1
	 */
	protected	$args		= array();

	/**
	 * Backtrace information
	 * @var    mixed
	 * @since  11.1
	 */
	protected	$backtrace	= null;

	/**
	 * Constructor
	 *	- used to set up the error with all needed error details.
	 *
	 * @param   string   $msg        The error message
	 * @param   string   $code       The error code from the application
	 * @param   integer  $level      The error level (use the PHP constants E_ALL, E_NOTICE etc.).
	 * @param   string   $info       Optional: The additional error information.
	 * @param   boolean  $backtrace  True if backtrace information is to be collected
	 *
	 * @since   11.1
	 *
	 * @deprecated  12.1
	 */
	public function __construct($msg, $code = 0, $level = null, $info = null, $backtrace = false)
	{
		$this->level	=	$level;
		$this->code		=	$code;
		$this->message	=	$msg;

		if ($info != null) {
			$this->info = $info;
		}

		if ($backtrace && function_exists('debug_backtrace'))
		{
			$this->backtrace = debug_backtrace();

			for($i = count($this->backtrace) - 1; $i >= 0; --$i)
			{
				++$i;
				if (isset($this->backtrace[$i]['file'])) {
					$this->file		= $this->backtrace[$i]['file'];
				}
				if (isset($this->backtrace[$i]['line'])) {
					$this->line		= $this->backtrace[$i]['line'];
				}
				if (isset($this->backtrace[$i]['class'])) {
					$this->class	= $this->backtrace[$i]['class'];
				}
				if (isset($this->backtrace[$i]['function'])) {
					$this->function	= $this->backtrace[$i]['function'];
				}
				if (isset($this->backtrace[$i]['type'])) {
					$this->type		= $this->backtrace[$i]['type'];
				}

				$this->args		= false;
				if (isset($this->backtrace[$i]['args'])) {
					$this->args		= $this->backtrace[$i]['args'];
				}
				break;
			}
		}

		// Store exception for debugging purposes!
		JError::addToStack($this);

		parent::__construct($msg, (int) $code);
	}

	/**
	 * Returns to error message
	 *
	 * @return  string  Error message
	 *
	 * @since   11.1
	 *
	 * @deprecated  12.1
	 */
	public function __toString()
	{
		return $this->message;
	}

	/**
	 * Returns to error message
	 *
	 * @return  string   Error message
	 *
	 * @since   11.1
	 * @deprecated    12.1
	 */
	public function toString()
	{
		return (string) $this;
	}

	/**
	 * Returns a property of the object or the default value if the property is not set.
	 *
	 * @param   string   $property  The name of the property
	 * @param   mixed    $default   The default value
	 *
	 * @return  mixed  The value of the property or null
	 *
	 * @deprecated    12.1
	 * @see     getProperties()
	 * @since   11.1
	 */
	public function get($property, $default=null)
	{
		if (isset($this->$property)) {
			return $this->$property;
		}
		return $default;
	}

	/**
	 * Returns an associative array of object properties
	 *
	 * @param   boolean  $public  If true, returns only the public properties
	 *
	 * @return  array  Object properties
	 *
	 * @deprecated    12.1
	 * @see     get()
	 * @since   11.1
	 */
	public function getProperties($public = true)
	{
		$vars  = get_object_vars($this);
		if ($public)
		{
			foreach ($vars as $key => $value)
			{
				if ('_' == substr($key, 0, 1)) {
					unset($vars[$key]);
				}
			}
		}
		return $vars;
	}

	/**
	 * Get the most recent error message
	 *
	 * @param   integer  $i         Option error index
	 * @param   boolean  $toString  Indicates if JError objects should return their error message
	 *
	 * @return  string  Error message
	 *
	 * @since   11.1
	 *
	 * @deprecated  12.1
	 */
	public function getError($i = null, $toString = true)
	{
		// Find the error
		if ($i === null) {
			// Default, return the last message
			$error = end($this->_errors);
		}
		else
		if (! array_key_exists($i, $this->_errors)) {
			// If $i has been specified but does not exist, return false
			return false;
		}
		else {
			$error	= $this->_errors[$i];
		}

		// Check if only the string is requested
		if (JError::isError($error) && $toString) {
			return (string)$error;
		}

		return $error;
	}

	/**
	 * Return all errors, if any
	 *
	 * @return  array  Array of error messages or JErrors
	 *
	 * @since   11.1
	 *
	 * @deprecated  12.1
	 */
	public function getErrors()
	{
		return $this->_errors;
	}


	/**
	 * Modifies a property of the object, creating it if it does not already exist.
	 *
	 * @param   string   $property  The name of the property
	 * @param   mixed    $value     The value of the property to set
	 *
	 * @return  mixed  Previous value of the property
	 *
	 * @deprecated    12.1
	 * @see     setProperties()
	 * @since   11.1
	 */
	public function set($property, $value = null)
	{
		$previous = isset($this->$property) ? $this->$property : null;
		$this->$property = $value;
		return $previous;
	}

	/**
	 * Set the object properties based on a named array/hash
	 *
	 * @param   $array  mixed Either and associative array or another object
	 *
	 * @return  boolean
	 *
	 * @deprecated    12.1
	 * @see     set()
	 * @since   11.1
	 */
	public function setProperties($properties)
	{
		// Cast to an array
		$properties = (array) $properties;

		if (is_array($properties))
		{
			foreach ($properties as $k => $v) {
				$this->$k = $v;
			}

			return true;
		}

		return false;
	}

	/**
	 * Add an error message
	 *
	 * @param   string  $error  Error message
	 *
	 * @return  void
	 *
	 * @since   11.1
	 *
	 * @deprecated  12.1
	 */
	public function setError($error)
	{
		array_push($this->_errors, $error);
	}
}