错误编码的设计

错误编码的设计

目的  

       编写本文档,设计错误编码的统一分配规则,统一编码实现方式,错误日志输出和查看等。

       本文符合《SES全局资源分配规则.doc》及《供应宝错误编码规则.doc》的基本原则和思想。    

分配规则

       错误编码采用4字节正整数表示。分为全局错误和私有错误。全局错误编码从0x00000000-0x00FFFFFF。私有错误编码从0x01000000-0xEFFFFFFF。0xF0000000-0xFFFFFFF为保留区域。

 

全局错误编码

       全局错误编码从0x00000000-0x00FFFFFF,空间容量为16777215个错误编码。全局错误编码进一步细分为如下类型。

错误类型

分配空间

容量

数据库错误

0x1000-0x1FFF

4095

文件访问错误

0x2000-0x2FFF

4095

内存操作错误

0x3000-0x3FFF

4095

网络访问错误

0x4000-0x4FFF

4095

客户端错误

0x5000-0x6FFF

8190

服务端错误

0x7000-0x8FFF

8190

其他错误

 

 

 

全局错误编码表文件名为globalerror.xml,暂时存放在“文档\设计文档”下。该文档采用xml结构描述,可直接用于程序实现,例如错误查询工具“ErrorLoopup.exe”。xml为存文本文件,可直接作为维护人员系统运维参考资料。

 

私有错误编码

私有错误编码作为全局错误编码的扩展,在同一个空间范围(4字节)中通过子空间范围加以区分,其空间范围取值从0x01000000-0xEFFFFFFF。原则上尽量不要使用私有错误编码,应该尽可能在全局错误编码中找到相应的错误编码。如确实存在扩展需要,方才使用私有错误编码。

 

私有错误编码以512个错误编码为单位进行分配。分配采用申请、登记、使用的原则。即先申请单位个错误编码,并登记在“privaterror.xml”(暂时存放在“文档\设计文档”下),而私有错误编码表则存放在“modulename_error.xml” (暂时存放在“文档\设计文档”下)文件中。

例如ap插件需要申请私有错误控件,先在“privaterror.xml”中寻找空闲空间,并进行登记,然后创建ap_error.xml,将错误编码表编入该文件。

 

保留编码空间

取值从0xF0000000-0xFFFFFFFF,未使用,最为最高符号位保留,用于兼容有符号int型错误编码。

 

使用说明

 

全局错误编码C++符号定义文件globalerror.h,文件存放在Server\common(服务端)和Client\common(客户端)。需要使用错误符号的单元包含该文件即可。

#include “globalerror.h”

 

1.1    基于请求/应答的hotfox编程模型

 

服务端的协议处理函数将响应码直接作为协议处理函数返回值返回。

 

Hotfox框架将协议处理函数返回值作为请求应答包的响应码参数“#SC#”返回给客户端。注意,#SC#参数用来区分原有的#SC参数,以便于兼容旧协议。#SC#参数作为系统参数,不建议应用层使用该参数作为其他用途。

 

客户端通过#SC#应答码检查服务器的处理结果。

 

1.2    错误日志输出和查看

服务端和客户端都有输出日志的编程框架,但该框架在对错误类型的日志(SEVERITY_ERROR)没有对错误编码进行统一格式的输出,不便于日志输出和日志查看。

 

考虑增加错误日志输出接口。

 

客服人员查看日志

客户人员查看日志的两种常见场景。

例行检查,检查服务器的错误记录。可搜索关键字][5][,列表错误记录。然后,根据错误码在globalerror.xml中找到对应的错误描述信息。

正对已发生的错误,查找日志,找到错误码,并在globalerror.xml中找到对应的错误描述信息。

 

1.3    ErrorLookup.exe开发

解析globalerror.xml文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值