目录

错误码配置

在这一节中,我们会对引擎错误码配置进行详解。该错误码的配置位于{项目资产库}/res/server/server_errors.xml中(在引擎内置配置文件夹下有类似文件:server_errors_default.xml,并作为引擎错误码配置的默认值),修改项目资产库下的server_errors.xml使错误码配置继承或者叫做覆盖(只可修改descr字段)。这样不会破坏引擎的默认设置,在你更新引擎时也不会产生冲突,以及在多个逻辑项目时不会影响到其他的项目设置。

1

我们先来看一下一个错误码是什么样的?

错误码的组成:

<root>
    <SUCCESS>
		<id>0</id>
		<descr>	成功。</descr>
	</SUCCESS>
    ...
</root>

1:一个错误码的配置由错误码标记(错误码的名字,且需保证唯一性)、错误码id、错误描述三个部分组成;
2:错误码id的类型为uint16。
3:注意:引擎的错误码是因内部机制而固定的,不可自定义错误id,只能修改已有错误码的错误描述字段descr

那引擎内包含的错误码有哪些?

引擎包含的错误码:

引擎包含的错误码在kbe/res/server/server_errors_defaults.xml中,

<root>
	<!-- 错误码类别为:uint16 -->

	<SUCCESS>
		<id>0</id>
		<descr>	成功。</descr>
	</SUCCESS>
	
	<SERVER_ERR_SRV_NO_READY>
		<id>1</id>
		<descr>	服务器没有准备好。</descr>
	</SERVER_ERR_SRV_NO_READY>

	<SERVER_ERR_SRV_OVERLOAD>
		<id>2</id>
		<descr>	服务器负载过重。</descr>
	</SERVER_ERR_SRV_OVERLOAD>
	
	<SERVER_ERR_ILLEGAL_LOGIN>
		<id>3</id>
		<descr>	非法登录。</descr>
	</SERVER_ERR_ILLEGAL_LOGIN>
	
	<SERVER_ERR_NAME_PASSWORD>
		<id>4</id>
		<descr>	用户名或者密码不正确。</descr>
	</SERVER_ERR_NAME_PASSWORD>
	
	<SERVER_ERR_NAME>
		<id>5</id>
		<descr>	用户名不正确。</descr>
	</SERVER_ERR_NAME>
	
	<SERVER_ERR_PASSWORD>
		<id>6</id>
		<descr>	密码不正确。</descr>
	</SERVER_ERR_PASSWORD>
	
	<SERVER_ERR_ACCOUNT_CREATE_FAILED>
		<id>7</id>
		<descr>	创建账号失败(已经存在一个相同的账号)。</descr>
	</SERVER_ERR_ACCOUNT_CREATE_FAILED>
	
	<SERVER_ERR_BUSY>
		<id>8</id>
		<descr>	操作过于繁忙(例如:在服务器前一次请求未执行完毕的情况下连续N次创建账号)。</descr>
	</SERVER_ERR_BUSY>
	
	<SERVER_ERR_ACCOUNT_LOGIN_ANOTHER>
		<id>9</id>
		<descr>	当前账号在另一处登录了。</descr>
	</SERVER_ERR_ACCOUNT_LOGIN_ANOTHER>
	
	<SERVER_ERR_ACCOUNT_IS_ONLINE>
		<id>10</id>
		<descr>	账号已登陆。</descr>
	</SERVER_ERR_ACCOUNT_IS_ONLINE>

	<SERVER_ERR_PROXY_DESTROYED>
		<id>11</id>
		<descr>	与客户端关联的proxy在服务器上已经销毁。</descr>
	</SERVER_ERR_PROXY_DESTROYED>
	
	<SERVER_ERR_ENTITYDEFS_NOT_MATCH>
		<id>12</id>
		<descr>	EntityDefs不匹配。</descr>
	</SERVER_ERR_ENTITYDEFS_NOT_MATCH>
	
	<SERVER_ERR_SERVER_IN_SHUTTINGDOWN>
		<id>13</id>
		<descr>	服务器正在关闭中。</descr>
	</SERVER_ERR_SERVER_IN_SHUTTINGDOWN>
	
	<SERVER_ERR_NAME_MAIL>
		<id>14</id>
		<descr>	Email地址错误。</descr>
	</SERVER_ERR_NAME_MAIL>
	
	<SERVER_ERR_ACCOUNT_LOCK>
		<id>15</id>
		<descr>	账号被冻结。</descr>
	</SERVER_ERR_ACCOUNT_LOCK>
	
	<SERVER_ERR_ACCOUNT_DEADLINE>
		<id>16</id>
		<descr>	账号已过期。</descr>
	</SERVER_ERR_ACCOUNT_DEADLINE>
	
	<SERVER_ERR_ACCOUNT_NOT_ACTIVATED>
		<id>17</id>
		<descr>	账号未激活。</descr>
	</SERVER_ERR_ACCOUNT_NOT_ACTIVATED>
	
	<SERVER_ERR_VERSION_NOT_MATCH>
		<id>18</id>
		<descr>	与服务端的版本不匹配。</descr>
	</SERVER_ERR_VERSION_NOT_MATCH>
	
	<SERVER_ERR_OP_FAILED>
		<id>19</id>
		<descr>	操作失败。</descr>
	</SERVER_ERR_OP_FAILED>
	
	<SERVER_ERR_SRV_STARTING>
		<id>20</id>
		<descr>	服务器正在启动中。</descr>
	</SERVER_ERR_SRV_STARTING>
	
	<SERVER_ERR_ACCOUNT_REGISTER_NOT_AVAILABLE>
		<id>21</id>
		<descr>	未开放账号注册功能。</descr>
	</SERVER_ERR_ACCOUNT_REGISTER_NOT_AVAILABLE>
	
	<SERVER_ERR_CANNOT_USE_MAIL>
		<id>22</id>
		<descr>	不能使用email地址。</descr>
	</SERVER_ERR_CANNOT_USE_MAIL>
	
	<SERVER_ERR_NOT_FOUND_ACCOUNT>
		<id>23</id>
		<descr>	找不到此账号。</descr>
	</SERVER_ERR_NOT_FOUND_ACCOUNT>
	
	<SERVER_ERR_DB>
		<id>24</id>
		<descr>	数据库错误(请检查dbmgr日志和DB)。</descr>
	</SERVER_ERR_DB>
	
	<SERVER_ERR_USER1>
		<id>25</id>
		<descr>	用户自定义错误码1。</descr>
	</SERVER_ERR_USER1>
	...
    <!-- 省略中间的用户自定义错误码 -->
    ...
	<SERVER_ERR_USER10>
		<id>34</id>
		<descr>	用户自定义错误码10。</descr>
	</SERVER_ERR_USER10>
	
	<SERVER_ERR_LOCAL_PROCESSING>
		<id>35</id>
		<descr>	本地处理,通常为某件事情不由第三方处理而是由KBE服务器处理。</descr>
	</SERVER_ERR_LOCAL_PROCESSING>
	
	<SERVER_ERR_ACCOUNT_RESET_PASSWORD_NOT_AVAILABLE>
		<id>36</id>
		<descr>	未开放账号重置密码功能。</descr>
	</SERVER_ERR_ACCOUNT_RESET_PASSWORD_NOT_AVAILABLE>
	
	<SERVER_ERR_ACCOUNT_LOGIN_ANOTHER_SERVER>
		<id>37</id>
		<descr>	当前账号在其他服务器登陆了。</descr>
	</SERVER_ERR_ACCOUNT_LOGIN_ANOTHER_SERVER>
</root>

服务器级别:

SUCCESS 成功处理。
SERVER_ERR_SRV_NO_READY 服务器没有准备好。

在baseapp启动时,存在一个检测是否ready的回调,如果该回调返回1.0,该服务器才就绪,如果在就绪之前客户端请求进入服务器,则会收到该错误。

SERVER_ERR_SRV_OVERLOAD 服务器负载过重。
SERVER_ERR_PROXY_DESTROYED 与客户端关联的proxy在服务器上已经销毁。
SERVER_ERR_ENTITYDEFS_NOT_MATCH EntityDefs不匹配。
SERVER_ERR_SERVER_IN_SHUTTINGDOWN 服务器正在关闭中。
SERVER_ERR_BUSY 操作过于繁忙(例如:在服务器前一次请求未执行完毕的情况下连续N次创建账号)。
SERVER_ERR_VERSION_NOT_MATCH 与服务端的版本不匹配。
SERVER_ERR_SRV_STARTING 服务器正在启动中。

登录相关:

SERVER_ERR_ILLEGAL_LOGIN 非法登录。
SERVER_ERR_NAME_PASSWORD 用户名或者密码不正确。在loginapp验证失败用户名密码时返回。
SERVER_ERR_NAME 用户名不正确
SERVER_ERR_PASSWORD 密码不正确
SERVER_ERR_ACCOUNT_CREATE_FAILED 创建账号失败(已经存在一个相同的账号)。
SERVER_ERR_ACCOUNT_LOGIN_ANOTHER 当前账号在另一处登录了。
SERVER_ERR_ACCOUNT_IS_ONLINE 账号已登陆。
SERVER_ERR_NAME_MAIL Email地址错误。
SERVER_ERR_ACCOUNT_LOCK 账号被冻结。
SERVER_ERR_ACCOUNT_DEADLINE 账号已过期。
SERVER_ERR_ACCOUNT_NOT_ACTIVATED 账号未激活。
SERVER_ERR_ACCOUNT_REGISTER_NOT_AVAILABLE 未开放账号注册功能。
SERVER_ERR_CANNOT_USE_MAIL 不能使用email地址。
SERVER_ERR_NOT_FOUND_ACCOUNT 找不到此账号。
SERVER_ERR_ACCOUNT_RESET_PASSWORD_NOT_AVAILABLE 未开放账号重置密码功能。
SERVER_ERR_ACCOUNT_LOGIN_ANOTHER_SERVER 当前账号在其他服务器登陆了。

其他:

SERVER_ERR_OP_FAILED 操作失败。
SERVER_ERR_DB 数据库错误(请检查dbmgr日志和DB)。
SERVER_ERR_USER1 用户自定义错误码1。
SERVER_ERR_LOCAL_PROCESSING 本地处理,通常为某件事情不由第三方处理而是由KBE服务器处理。

修改一个错误码的描述descr:

要修改一个错误码的描述,一般建议在{项目资产库}/res/server/server_errors.xml下进行修改或添加。

1. 必须使用引擎已有的错误码id和错误码名称,且只可修改descr字段。

server_errors.xml中:
<root>
    <SUCCESS>
		<id>0</id>
		<descr>	我是修改后的成功。</descr>
	</SUCCESS>
</root>

这样,一个Success的错误码已经修改成功,描述改成了”我是修改后的成功。”

2. 传输

错误码按照id中定义的uint16的值进行传输,发送和接收方需要对该id进行解析,了解错误码实际对应的意义。


Copyright © 2018 Yolo Technologies. Publication: 2.0-025. Built: 2018-12-07.