CMQClientException.php
3.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<?php
namespace App\Common\TencentMQ;
class CMQExceptionBase extends \RuntimeException
{
    /*
    @type code: int
    @param code: 错误类型
    @type message: string
    @param message: 错误描述
    @type data: array
    @param data: 错误数据
    */
    public $code;
    public $message;
    public $data;
    public function __construct($message, $code=-1, $data=array())
    {
        parent::__construct($message, $code, null);
        $this->code = $code;
        $this->message = $message;
        $this->data = $data;
    }
    public function __toString()
    {
        return "CMQExceptionBase  " .  $this->get_info();
    }
    public function get_info()
    {
        $info = array("code" => $this->code,
                     "data" => json_encode($this->data),
                     "message" => $this->message);
        return json_encode($info);
    }
}
class CMQClientException extends CMQExceptionBase
{
    public function __construct($message, $code=-1, $data=array())
    {
        parent::__construct($message, $code, $data);
    }
    public function __toString()
    {
        return "CMQClientException  " .  $this->get_info();
    }
}
class CMQClientNetworkException extends CMQClientException
{
    /* 网络异常
        @note: 检查endpoint是否正确、本机网络是否正常等;
    */
    public function __construct($message, $code=-1, $data=array())
    {
        parent::__construct($message, $code, $data);
    }
    public function __toString()
    {
        return "CMQClientNetworkException  " .  $this->get_info();
    }
}
class CMQClientParameterException extends CMQClientException
{
    /* 参数格式错误
        @note: 请根据提示修改对应参数;
    */
    public function __construct($message, $code=-1, $data=array())
    {
        parent::__construct($message, $code, $data);
    }
    public function __toString()
    {
        return "CMQClientParameterException  " .  $this->get_info();
    }
}
class CMQServerNetworkException extends CMQExceptionBase
{
    //服务器网络异常
    public $status;
    public $header;
    public $data;
    public function __construct($status = 200, $header = NULL, $data = "")
    {
        if ($header == NULL) {
            $header = array();
        }
        $this->status = $status;
        $this->header = $header;
        $this->data = $data;
    }
    public function __toString()
    {
        $info = array("status" => $this->status,
                     "header" => json_encode($this->header),
                     "data" => $this->data);
        return "CMQServerNetworkException  " . json_encode($info);
    }
}
class CMQServerException extends CMQExceptionBase
{
    /* cmq处理异常
        @note: 根据code进行分类处理,常见错误类型:
             : 4000       参数不合法
             : 4100       鉴权失败:密钥不存在/失效
             : 4300       账户欠费了
             : 4400       消息大小超过队列属性设置的最大值
             : 4410       已达到队列最大的消息堆积数
             : 4420       qps限流
             : 4430       删除消息的句柄不合法或者过期了
             : 4440       队列不存在
             : 4450       队列个数超过限制
             : 4460       队列已经存在
             : 6000       服务器内部错误
             : 6010       批量删除消息失败(具体原因还要看每个消息删除失败的错误码)
             : 7000       空消息,即队列当前没有可用消息
             : 更多错误类型请登录腾讯云消息服务官网进行了解;
    */
    public $request_id;
    public function __construct($message, $request_id, $code=-1, $data=array())
    {
        parent::__construct($message, $code, $data);
        $this->request_id = $request_id;
    }
    public function __toString()
    {
        return "CMQServerException  " .  $this->get_info() . ", RequestID:" . $this->request_id;
    }
}
?>