|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* @link http://www.yiiframework.com/
|
|
|
|
* @copyright Copyright (c) 2008 Yii Software LLC
|
|
|
|
* @license http://www.yiiframework.com/license/
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace yii\base;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* HttpException represents an exception caused by an improper request of the end-user.
|
|
|
|
*
|
|
|
|
* HttpException can be differentiated via its [[statusCode]] property value which
|
|
|
|
* keeps a standard HTTP status code (e.g. 404, 500). Error handlers may use this status code
|
|
|
|
* to decide how to format the error page.
|
|
|
|
*
|
|
|
|
* @author Qiang Xue <qiang.xue@gmail.com>
|
|
|
|
* @since 2.0
|
|
|
|
*/
|
|
|
|
class HttpException extends UserException
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @var integer HTTP status code, such as 403, 404, 500, etc.
|
|
|
|
*/
|
|
|
|
public $statusCode;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Constructor.
|
|
|
|
* @param integer $status HTTP status code, such as 404, 500, etc.
|
|
|
|
* @param string $message error message
|
|
|
|
* @param integer $code error code
|
|
|
|
* @param \Exception $previous The previous exception used for the exception chaining.
|
|
|
|
*/
|
|
|
|
public function __construct($status, $message = null, $code = 0, \Exception $previous = null)
|
|
|
|
{
|
|
|
|
$this->statusCode = $status;
|
|
|
|
parent::__construct($message, $code, $previous);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return string the user-friendly name of this exception
|
|
|
|
*/
|
|
|
|
public function getName()
|
|
|
|
{
|
|
|
|
// use absolute namespaced class here because PHP will generate a mysterious error otherwise
|
|
|
|
if (isset(\yii\web\Response::$httpStatuses[$this->statusCode])) {
|
|
|
|
return \yii\web\Response::$httpStatuses[$this->statusCode];
|
|
|
|
} else {
|
|
|
|
return 'Error';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|