You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
3.0 KiB
109 lines
3.0 KiB
<?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() |
|
{ |
|
static $httpCodes = array( |
|
100 => 'Continue', |
|
101 => 'Switching Protocols', |
|
102 => 'Processing', |
|
118 => 'Connection timed out', |
|
200 => 'OK', |
|
201 => 'Created', |
|
202 => 'Accepted', |
|
203 => 'Non-Authoritative', |
|
204 => 'No Content', |
|
205 => 'Reset Content', |
|
206 => 'Partial Content', |
|
207 => 'Multi-Status', |
|
210 => 'Content Different', |
|
300 => 'Multiple Choices', |
|
301 => 'Moved Permanently', |
|
302 => 'Found', |
|
303 => 'See Other', |
|
304 => 'Not Modified', |
|
305 => 'Use Proxy', |
|
307 => 'Temporary Redirect', |
|
310 => 'Too many Redirect', |
|
400 => 'Bad Request', |
|
401 => 'Unauthorized', |
|
402 => 'Payment Required', |
|
403 => 'Forbidden', |
|
404 => 'Not Found', |
|
405 => 'Method Not Allowed', |
|
406 => 'Not Acceptable', |
|
407 => 'Proxy Authentication Required', |
|
408 => 'Request Time-out', |
|
409 => 'Conflict', |
|
410 => 'Gone', |
|
411 => 'Length Required', |
|
412 => 'Precondition Failed', |
|
413 => 'Request Entity Too Large', |
|
414 => 'Request-URI Too Long', |
|
415 => 'Unsupported Media Type', |
|
416 => 'Requested range unsatisfiable', |
|
417 => 'Expectation failed', |
|
418 => 'I’m a teapot', |
|
422 => 'Unprocessable entity', |
|
423 => 'Locked', |
|
424 => 'Method failure', |
|
425 => 'Unordered Collection', |
|
426 => 'Upgrade Required', |
|
449 => 'Retry With', |
|
450 => 'Blocked by Windows Parental Controls', |
|
500 => 'Internal Server Error', |
|
501 => 'Not Implemented', |
|
502 => 'Bad Gateway ou Proxy Error', |
|
503 => 'Service Unavailable', |
|
504 => 'Gateway Time-out', |
|
505 => 'HTTP Version not supported', |
|
507 => 'Insufficient storage', |
|
509 => 'Bandwidth Limit Exceeded', |
|
); |
|
|
|
if (isset($httpCodes[$this->statusCode])) { |
|
return $httpCodes[$this->statusCode]; |
|
} else { |
|
return \Yii::t('yii|Error'); |
|
} |
|
} |
|
}
|
|
|