Exception.php 5.04 KB
Newer Older
1 2
<?php
/**
3
 * Exception classes for HTTP_Request2 package
4 5 6
 *
 * PHP version 5
 *
mmn's avatar
mmn committed
7 8 9 10 11 12 13 14 15 16 17 18
 * LICENSE
 *
 * This source file is subject to BSD 3-Clause License that is bundled
 * with this package in the file LICENSE and available at the URL
 * https://raw.github.com/pear/HTTP_Request2/trunk/docs/LICENSE
 *
 * @category  HTTP
 * @package   HTTP_Request2
 * @author    Alexey Borzov <avb@php.net>
 * @copyright 2008-2014 Alexey Borzov <avb@php.net>
 * @license   http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
 * @link      http://pear.php.net/package/HTTP_Request2
19 20 21 22 23 24 25 26
 */

/**
 * Base class for exceptions in PEAR
 */
require_once 'PEAR/Exception.php';

/**
27
 * Base exception class for HTTP_Request2 package
28
 *
29 30 31
 * @category HTTP
 * @package  HTTP_Request2
 * @author   Alexey Borzov <avb@php.net>
mmn's avatar
mmn committed
32 33
 * @license  http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
 * @version  Release: 2.2.1
34 35
 * @link     http://pear.php.net/package/HTTP_Request2
 * @link     http://pear.php.net/pepr/pepr-proposal-show.php?id=132
36 37 38
 */
class HTTP_Request2_Exception extends PEAR_Exception
{
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
    /** An invalid argument was passed to a method */
    const INVALID_ARGUMENT   = 1;
    /** Some required value was not available */
    const MISSING_VALUE      = 2;
    /** Request cannot be processed due to errors in PHP configuration */
    const MISCONFIGURATION   = 3;
    /** Error reading the local file */
    const READ_ERROR         = 4;

    /** Server returned a response that does not conform to HTTP protocol */
    const MALFORMED_RESPONSE = 10;
    /** Failure decoding Content-Encoding or Transfer-Encoding of response */
    const DECODE_ERROR       = 20;
    /** Operation timed out */
    const TIMEOUT            = 30;
    /** Number of redirects exceeded 'max_redirects' configuration parameter */
    const TOO_MANY_REDIRECTS = 40;
    /** Redirect to a protocol other than http(s):// */
    const NON_HTTP_REDIRECT  = 50;

59 60 61 62
    /**
     * Native error code
     * @var int
     */
63 64
    private $_nativeCode;

65 66 67 68 69 70 71
    /**
     * Constructor, can set package error code and native error code
     *
     * @param string $message    exception message
     * @param int    $code       package error code, one of class constants
     * @param int    $nativeCode error code from underlying PHP extension
     */
72 73 74 75 76 77
    public function __construct($message = null, $code = null, $nativeCode = null)
    {
        parent::__construct($message, $code);
        $this->_nativeCode = $nativeCode;
    }

78 79 80 81 82 83 84 85 86
    /**
     * Returns error code produced by underlying PHP extension
     *
     * For Socket Adapter this may contain error number returned by
     * stream_socket_client(), for Curl Adapter this will contain error number
     * returned by curl_errno()
     *
     * @return integer
     */
87 88 89 90
    public function getNativeCode()
    {
        return $this->_nativeCode;
    }
91
}
92 93 94 95

/**
 * Exception thrown in case of missing features
 *
96 97 98
 * @category HTTP
 * @package  HTTP_Request2
 * @author   Alexey Borzov <avb@php.net>
mmn's avatar
mmn committed
99 100
 * @license  http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
 * @version  Release: 2.2.1
101
 * @link     http://pear.php.net/package/HTTP_Request2
102
 */
103 104 105
class HTTP_Request2_NotImplementedException extends HTTP_Request2_Exception
{
}
106 107 108 109 110 111 112 113 114 115 116

/**
 * Exception that represents error in the program logic
 *
 * This exception usually implies a programmer's error, like passing invalid
 * data to methods or trying to use PHP extensions that weren't installed or
 * enabled. Usually exceptions of this kind will be thrown before request even
 * starts.
 *
 * The exception will usually contain a package error code.
 *
117 118 119
 * @category HTTP
 * @package  HTTP_Request2
 * @author   Alexey Borzov <avb@php.net>
mmn's avatar
mmn committed
120 121
 * @license  http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
 * @version  Release: 2.2.1
122
 * @link     http://pear.php.net/package/HTTP_Request2
123
 */
124 125 126
class HTTP_Request2_LogicException extends HTTP_Request2_Exception
{
}
127 128 129 130 131 132 133

/**
 * Exception thrown when connection to a web or proxy server fails
 *
 * The exception will not contain a package error code, but will contain
 * native error code, as returned by stream_socket_client() or curl_errno().
 *
134 135 136
 * @category HTTP
 * @package  HTTP_Request2
 * @author   Alexey Borzov <avb@php.net>
mmn's avatar
mmn committed
137 138
 * @license  http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
 * @version  Release: 2.2.1
139
 * @link     http://pear.php.net/package/HTTP_Request2
140
 */
141 142 143
class HTTP_Request2_ConnectionException extends HTTP_Request2_Exception
{
}
144 145 146 147 148 149

/**
 * Exception thrown when sending or receiving HTTP message fails
 *
 * The exception may contain both package error code and native error code.
 *
150 151 152
 * @category HTTP
 * @package  HTTP_Request2
 * @author   Alexey Borzov <avb@php.net>
mmn's avatar
mmn committed
153 154
 * @license  http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
 * @version  Release: 2.2.1
155
 * @link     http://pear.php.net/package/HTTP_Request2
156
 */
157 158 159
class HTTP_Request2_MessageException extends HTTP_Request2_Exception
{
}
160
?>