CN109445770A - 一种错误码的处理方法、装置、介质及设备 - Google Patents

一种错误码的处理方法、装置、介质及设备 Download PDF

Info

Publication number
CN109445770A
CN109445770A CN201811201324.6A CN201811201324A CN109445770A CN 109445770 A CN109445770 A CN 109445770A CN 201811201324 A CN201811201324 A CN 201811201324A CN 109445770 A CN109445770 A CN 109445770A
Authority
CN
China
Prior art keywords
error code
class
error
interface
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811201324.6A
Other languages
English (en)
Other versions
CN109445770B (zh
Inventor
周志刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xizang Laicheng Technology Co.,Ltd.
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201811201324.6A priority Critical patent/CN109445770B/zh
Publication of CN109445770A publication Critical patent/CN109445770A/zh
Application granted granted Critical
Publication of CN109445770B publication Critical patent/CN109445770B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及网络直播技术领域,尤其涉及错误码的处理方法、装置、介质及设备,所述方法包括获得用于定义错误码的错误码基类,并对所述错误码基类进行特例化处理,以定义所述错误码;其中,所述错误码是弹幕链接发生错误时产生的错误码;获得错误码管理类,所述错误码管理类用于提供调用包含所述错误码的所有错误码的调用接口,以及用于生成并存储所述错误码对应的错误码描述信息;当所述弹幕链接发生错误之后,基于所述弹幕链接产生的错误信息,调用所述调用接口访问错误码管理类,以获得所述错误码,并从所述错误码管理类中提取出所述错误码描述信息。

Description

一种错误码的处理方法、装置、介质及设备
技术领域
本发明涉及网络直播技术领域,尤其涉及一种错误码的处理方法、装置、介质及设备。
背景技术
对于直播平台客户端来说,当观众观看直播时,常常会去连接弹幕,观看弹幕。现有弹幕都是通过TCP来与服务器进行连接,从而使得客户端可以发送弹幕到服务器,服务器也可以将其他观众的弹幕发送给客户端。然而由于客户端与服务器在进行弹幕链接时,可能会出现一些问题,比如当前客户端没有网络,所以链接不上,比如当前服务器出现了问题,链接不上,比如当前客户端网络发生了切换,链接断开等等。通常,对每一种问题错误开发人员会定义一个错误码,并且提供描述字符串来标示错误码的含义,从而可以告知用户当前连不上弹幕的原因。具体做法则是定义一个宏变量来标示错误码,然后定义一个字符串来标示错误码的含义。
但是一个APP通常情况下是有多人协同开发的,任意一个开发者都可以定义错误码,并对错误码的含义进行标示,这就可能导致不同的开发者定义2个一样的错误码,但是对错误码标示的含义是不一样的,同一个开发者如果忘记了自己曾经定义过或者没有检查仔细,也有可能会出现上述情况。以上情况都会导致用户在遇到弹幕错误时,无法确定错误原因。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种错误码的处理方法、装置、介质及设备。
第一方面,本发明实施例提供一种错误码的处理方法,所述方法包括:
获得用于定义错误码的错误码基类,并对所述错误码基类进行特例化处理,以定义所述错误码;其中,所述错误码是弹幕链接发生错误时产生的错误码;
获得错误码管理类,所述错误码管理类用于提供调用包含所述错误码的所有错误码的调用接口,以及用于生成并存储所述错误码对应的错误码描述信息;
当所述弹幕链接发生错误之后,基于所述弹幕链接产生的错误信息,调用所述调用接口访问错误码管理类,以获得所述错误码,并从所述错误码管理类中提取出所述错误码描述信息。
优选地,所述获得用于定义错误码的错误码基类,并对所述错误码基类进行特例化处理,包括:
使用C++语言的模板设计一模板类作为错误码基类;
并对错误码基类进行模板特例化处理。
优选地,所述错误码管理类为单件类。
优选地,Error Mgr类访问接口创建Error Mgr类;
基于Error Mgr类,构建错误码管理类的默认构造函数,并将该默认构成函数定义成私有的;
创建静态实例化指针,用于指向已经创建的错误码管理类;
创建对外的错误码Error Mgr类访问接口,以使得开发者可以访问已经创建的Error Mgr类;
创建错误码描述数组,用以存储错误码描述,错误码描述与错误码一一对应。
优选地,当开发者调用Error Mgr类访问接口时,接口先判断所要访问的类否已经创建了实例化对象,如果没有则创建一份,如果已经创建则返回创建的。
优选地,所述获得错误码管理类,包括:
设置错误码注册接口,以使开发者能够通过调用该接口注册错误码,所述错误码注册接口为宏接口。
优选地,所述获得错误码管理类,包括:
设置获取错误码描述的接口,该接口根据根据错误码获取相应的错误码描述,并返回给用户。
第二方面,本发明实施例提供一种错误码的处理装置,所述装置包括:
第一获得单元,获得用于定义错误码的错误码基类,并对所述错误码基类进行特例化处理,以定义所述错误码;其中,所述错误码是弹幕链接发生错误时产生的错误码
第二获得单元,获得错误码管理类,所述错误码管理类用于提供调用包含所述错误码的所有错误码的调用接口,以及用于生成并存储所述错误码对应的错误码描述信息;
管理单元,当所述弹幕链接发生错误之后,基于所述弹幕链接产生的错误信息,调用所述调用接口访问错误码管理类,以获得所述错误码,并从所述错误码管理类中提取出所述错误码描述信息。
优选地,所述第一获得单元,具体用于:
使用C++语言的模板设计模板类作为错误码基类,并对错误码基类进行模板特例化处理。
优选地,所述错误码管理类为单件类。
优选地,所述第二获得单元,具体用于:
Error Mgr类访问接口创建Error Mgr类;
基于Error Mgr类,构建错误码管理类的默认构造函数,并将该默认构成函数定义成私有的;
创建静态实例化指针,用于指向已经创建的Error Mgr类;
创建对外的错误码Error Mgr类访问接口,以使得开发者可以访问已经创建的Error Mgr类;
创建错误码描述数组,用以存储错误码描述,错误码描述与错误码一一对应。
优选地,所述装置,还包括:
判断单元,用于当开发者调用Error Mgr类访问接口时,接口先判断所要访问的类否已经创建了实例化对象,如果没有则创建一份,如果已经创建则返回创建的。
优选地,所述第二获得单元,具体用于:
设置错误码注册接口,以使开发者能够通过调用该接口注册错误码,所述错误码注册接口为宏接口。
优选地,所述二获得单元,具体用于:
设置获取错误码描述信息的接口,该接口根据错误码获取相应的错误码描述信息,并返回给用户。
第三方面,基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前述实施例所述的方法。
第四方面,基于同一发明构思,本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如前述实施例所述的方法。
本发明实施例中的一个或多个技术方案,至少具有如下技术效果或优点:
本发明公开了一种错误码的处理方法、装置、介质及设备,首先获得用于定义错误码的错误码基类,并对所述错误码基类进行特例化处理,以定义所述错误码,由于对错误码基类进行特例化处理,使得每个错误码在整个程序中仅存在唯一一个,从而使得与该错误码对应的错误码描述也是唯一的。其次,会获得错误码管理类,错误码管理类用于提供调用包含所述错误码的所有错误码的调用接口,以及用于生成并存储所述错误码对应的错误码描述信息,故而可以从错误码管理类中得到错误码和对应的错误码描述信息。通过上述技术方案,当所述弹幕链接发生错误之后,基于所述弹幕链接产生的错误信息,调用所述调用接口访问错误码管理类,以获得所述错误码,并从所述错误码管理类中提取出所述错误码描述信息;将所述错误码和所述错误码描述信息进行显示。由此可见,本发明从根本上解决了现有技术中的同一个错误码可能存在多个,且分别具有不同的含义,导致在发生错误时用户无法确定真正的错误描述的问题。能够保证每个错误码在整个程序中仅存在唯一一个,能够保证在发生错误时只会出现一个错误码。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考图形表示相同的部件。
图1示出了本发明实施例中的直播平台弹幕信息的管理方法的流程图。
图2示出了本发明实施例中的直播平台弹幕信息的管理装置的结构示意图。
图3示出了本发明实施例中的计算机设备的实体结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参见图1所示,本发明实施例提供一种错误码的处理方法,所述方法包括:
获得用于定义错误码的错误码基类,并对所述错误码基类进行特例化处理,以定义所述错误码;其中,所述错误码是弹幕链接发生错误时产生的错误码;
获得错误码管理类,所述错误码管理类用于提供调用包含所述错误码的所有错误码的调用接口,以及用于生成并存储所述错误码对应的错误码描述信息;
当所述弹幕链接发生错误之后,基于所述弹幕链接产生的错误信息,调用所述调用接口访问错误码管理类,以获得所述错误码,并从所述错误码管理类中提取出所述错误码描述信息。本实施例中,通过将错误码基类进行特例化处理,使得任意错误码都是唯一的,从而使得与该错误码对应的错误码描述也是唯一的,从而从根本上避免了开发人员由于人为失误导致定义了多个相同的错误码并为这些相同的错误码定义不同的错误码描述而导致的用户无法确定真正的错误原因的问题。
本实施例中,在获得错误码和错误码描述信息后,还将错误码和错误码信息反馈给用户,本实施例采用的反馈方法为将错误码和错误码信息进行显示,当然,本领域技术人员可以理解,反馈方法不限于此,比如还可以采用语音播报等反馈方法。
在本实施例中,所述获得用于定义错误码的错误码基类,并对所述错误码基类进行特例化处理,包括:
使用C++语言的模板设计一模板类作为错误码基类;
并对错误码基类进行模板特例化处理。
具体来说,在本实施例中,定义一个模板类class CErrnoType作为错误码基类,类名称为CErrnoType,并且此类是一个空的类,不需要任何功能的实现。同时本实施例对其进行模板特例化处理:在此类的开头,加入template<int errorcode>,其中int的值定义变量为errorcode,也就是说每一个错误码定义为一个特例化的模板类。
而在C++语言中,语言的特性使得没有办法定义2个一样的类,如果出现一样的类,则编译器会出现错误,认为开发人员代码开发错误,从而没有办法通过编译。通过这种机制,本实施例保障了开发人员没有办法定义2个一样的错误码,从而从语言底层上解决了人为失误的问题。
在本实施例中,所述错误码管理类为单件类。
将错误码管理类设计为单件类,保证每个类仅有一个实例,并提供一个访问它的全局访问点。因此,每一个类在整个程序中只会存在一份,并且整个程序都是通过统一的调用接口调用该类。
在一实施例中,Error Mgr类访问接口创建Error Mgr类;
基于Error Mgr类,构建错误码管理类的默认构造函数,并将该默认构成函数定义成私有的;
创建静态实例化指针,用于指向已经创建的错误码管理类;
创建对外的错误码Error Mgr类访问接口,以使得开发者可以访问已经创建的Error Mgr类;
创建错误码描述数组,用以存储错误码描述,错误码描述与错误码一一对应。
具体实现如下:
Class ErrorMgr{
定义类ErrorMgr类;
定义类的成员变量和方法:
private:
ErrorMgr();
ErrorMgr&operator=(const ErrorMgr&);
首先定义类的默认构造函数,并定义成私有的,从而使得此类无法进行构造;
static ErrorMgr*_instance;
然后定义一份静态实例化指针,用于指向创建的类;
Public:
接下来定义对外的ErrorMgr类访问接口;
接下来定义错误码描述的存储数组,其是一个字符串的存储数组。
const char*errnodesc[ERRNOEND-ERRNOBEGIN]={};
其中ERRNOBEGIN为错误码开始的错误码号,本实施例定义为-1000,ERRNOEND为错误码结束的错误码号,本实施例定义为1000。从而错误码描述数组errnodesc可以存储-1000到1000的所有错误码描述,并且依据错误码来对应具体的错误码描述。比如本文想定义0号错误码为正常没有错误。
则实际定义如下:
errnodesc[0-ERRNOBEGIN]=“success”;
在本实施例中,当开发者调用ErrorMgr类访问接口时,接口先判断所要访问的类否已经创建了实例化对象,如果没有则创建一份,如果已经创建则返回创建的,从而保证每个ErrorMgr类在整个程序中只会存在一份。
此时ErrorMgr类访问接口具体实现如下:
在本实施例中,获得错误码管理类包括,设置错误码注册接口,以使开发者能够通过调用该接口注册错误码,本实施例中具体实现如下:
Class ErrorMgr{
Public:
int RegisterErrno(int errorcode,const char*description){
首先需要对此接口的输入参数进行合法性判断。
if(errorcode<ERRNOBEGIN||errorcode>=ERRNOEND){
如果定义的错误码超过了本文定义的范围,则认为输入参数非法。
Return 0;
}
If(description==NULL){
如果错误码描述为空则认为输入参数非法。
}
接下来需要对合法的输入参数来进行注册。
首先本实施例不仅仅提供了错误码的注册功能,同时对于如果已经注册的错误码则可以提示已经注册。
const char*desc=errnodesc[errorcode-ERRNOBEGIN];
首先依据错误码来从错误码数组里面获取对应的错误码描述。
If(desc){
如果已经存在,则可以提示已经注册,提示开发者,错误码已经被使用。
Return 0;
}
Else{
errnodesc[errorcode-ERRNOBEGIN]=description;
否则则将新的注册码于错误码描述赋值到数组中。
Return 1;
}
}
}
在本实施例中,错误码注册接口为宏接口。
具体实现如下:
#define REGISTER_ERRNO(errorcode,description)\
ErrorMgr::GetInstance()->RegisterErrno((errorcode),(description));\
template<>class CErrnoType<(int)(errorcode)>{};
本实施例设置了宏接口REGISTER_ERRNO(errorcode,description)来提供给开发者定义不同的错误码描述,其中errorcode对应具体的错误码,description则对应该错误码的描述,具体实现则是调用获得的错误码管理类来进行注册。
具体注册码如下:
REGISTER_ERRNO(104,“网络不稳定”);
REGISTER_ERRNO(103,“数据传输错误”);
REGISTER_ERRNO(110,“服务器关闭了当前连接”);
在本实施例中,所述获得错误码管理类,包括:
设置获取错误码描述信息的接口,该接口根据根据错误码获取相应的错误码描述信息,并返回给用户。
该接口也是在错误码管理类中设置。具体实现如下:
Class ErrorMgr{
Public:
const char*Geterrordesc(int errorcode){
首先判断错误码的合法性:
if(errorcode<ERRNOBEGIN||errorcode>=ERRNOEND){
则说明此错误码并没有定义,所以无法获取其错误码描述信息。
Return NULL;则返回空。
}
Else{
const char*s=errnodesc[errorcode-ERRNOBEGIN];
依据错误码来得到对应的错误码描述信息s;
然后返回该错误码描述信息。
Return s;
}
}
从而一旦弹幕链接出错,得到了错误码后,则可以直接调用此接口返回对应的错误码描述信息。
const char*s=ErrorMgr::GetInstance()->Geterrordesc(errorcode);
从而可以对用户显示该错误码的描述信息。
基于同一发明构思,本发明实施例一种错误码的处理装置,如图2所示,所述装置包括:
第一获得单元,获得用于定义错误码的错误码基类,并对所述错误码基类进行特例化处理,以定义所述错误码;其中,所述错误码是弹幕链接发生错误时产生的错误码
第二获得单元,获得错误码管理类,所述错误码管理类用于提供调用包含所述错误码的所有错误码的调用接口,以及用于生成并存储所述错误码对应的错误码描述信息;
管理单元,当所述弹幕链接发生错误之后,基于所述弹幕链接产生的错误信息,调用所述调用接口访问错误码管理类,以获得所述错误码,并从所述错误码管理类中提取出所述错误码描述信息。
本实施例中,通过第一获得单元对错误码基类进行特例化处理,使得任意错误码都是唯一的,从而与该错误码对应的错误码描述也是唯一的,从根本上避免了开发人员由于人为失误导致定义了多个相同的错误码并为这些相同的错误码定义不同的错误码描述而导致的用户无法确定真正的错误原因的问题。
本实施例中,所述管理单元还用于,在获得错误码和错误码描述信息后,将错误码和错误码信息反馈给用户,本实施例采用的反馈方法为将错误码和错误码信息进行显示,当然,本领域技术人员可以理解,反馈方式不限于此,比如还可以采用语音播报等反馈方法。
在本实施例中,所述第一获得单元,具体用于:
使用C++语言的模板设计模板类作为错误码基类,并对错误码基类进行模板特例化处理。
具体来说,在本实施例中,通过第一获得单元定义一个模板类class CErrnoType作为错误码基类,类名称为CErrnoType,并且此类是一个空的类,不需要任何功能的实现。同时通过第一获得单元对其进行模板特例化处理:在此类的开头,加入template<interrorcode>,其中int的值定义变量为errorcode,也就是说每一个错误码定义为一个特例化的模板类。而在C++语言中,语言的特性使得没有办法定义2个一样的类,如果出现一样的类,则编译器会出现错误,认为开发人员代码开发错误,从而没有办法通过编译。通过这种机制,本实施例保障了开发人员没有办法定义2个一样的错误码,从而从语言底层上解决了人为失误的问题。
在本实施例中,所述错误码管理类为单件类。
将错误码管理类设计为单件类,保证每个类仅有一个实例,并提供一个访问它的全局访问点。因此,每一个类在整个程序中只会存在一份,并且整个程序都是通过统一的调用接口调用该类。
在本实施例中,所述第二获得单元,具体用于:
Error Mgr类访问接口创建Error Mgr类;
基于Error Mgr类,构建错误码管理类的默认构造函数,并将该默认构成函数定义成私有的;
创建静态实例化指针,用于指向已经创建的Error Mgr类;
创建对外的错误码Error Mgr类访问接口,以使得开发者可以访问已经创建的Error Mgr类;
创建错误码描述数组,用以存储错误码描述信息,错误码描述信息与错误码一一对应。
具体实现如下:
Class ErrorMgr{
定义类ErrorMgr标示错误码管理类;
定义类的成员变量和方法:
private:
ErrorMgr();
ErrorMgr&operator=(const ErrorMgr&);
首先定义类的默认构造函数,并定义成私有的,从而使得此类无法进行构造;
static ErrorMgr*_instance;
然后定义一份静态实例化指针,用于指向创建的类;
Public:
接下来定义对外的错误码Error Mgr类访问接口;
接下来定义错误码描述的存储数组,其是一个字符串的存储数组。
const char*errnodesc[ERRNOEND-ERRNOBEGIN]={};
其中ERRNOBEGIN为错误码开始的错误码号,本实施例定义为-1000,ERRNOEND为错误码结束的错误码号,本实施例定义为1000。从而错误码描述数组errnodesc可以存储-1000到1000的所有错误码描述,并且依据错误码来对应具体的错误码描述。比如本文想定义0号错误码为正常没有错误。则实际定义如下:
errnodesc[0-ERRNOBEGIN]=“success”;
在本实施例中,所述装置,还包括:
判断单元,用于当开发者调用Error Mgr类访问接口时,接口先判断所要访问的类否已经创建了实例化对象,如果没有则创建一份,如果已经创建则返回创建的,从而保证每个错误码管理类在整个程序中只会存在一份。
此时Error Mgr类访问接口具体实现如下:
在本实施例中,所述第二获得单元,具体用于:
设置错误码注册接口,以使开发者能够通过调用该接口注册错误码,本实施例中具体实现如下:
Class ErrorMgr{
Public:
int RegisterErrno(int errorcode,const char*description){
首先需要对此接口的输入参数进行合法性判断。
if(errorcode<ERRNOBEGIN||errorcode>=ERRNOEND){
如果定义的错误码超过了本文定义的范围,则认为输入参数非法。
Return 0;
}
If(description==NULL){
如果错误码描述为空则认为输入参数非法。
}
接下来需要对合法的输入参数来进行注册。
首先本实施例不仅仅提供了错误码的注册功能,同时对于如果已经注册的错误码则可以提示已经注册。
const char*desc=errnodesc[errorcode-ERRNOBEGIN];
首先依据错误码来从错误码数组里面获取对应的错误码描述。
If(desc){
如果已经存在,则可以提示已经注册,提示开发者,错误码已经被使用。
Return 0;
}
Else{
errnodesc[errorcode-ERRNOBEGIN]=description;
否则则将新的注册码于错误码描述赋值到数组中。
Return 1;
}
}
}
在本实施例中,错误码注册接口为宏接口。
具体实现如下:
#define REGISTER_ERRNO(errorcode,description)\
ErrorMgr::GetInstance()->RegisterErrno((errorcode),(description));\
template<>class CErrnoType<(int)(errorcode)>{};
本实施例设置了宏接口REGISTER_ERRNO(errorcode,description)来提供给开发者定义不同的错误码描述,其中errorcode对应具体的错误码,description则对应该错误码的描述,具体实现则是调用获得的错误码管理类来进行注册。
具体注册码如下:
REGISTER_ERRNO(104,“网络不稳定”);
REGISTER_ERRNO(103,“数据传输错误”);
REGISTER_ERRNO(110,“服务器关闭了当前连接”);
在本实施例中,所述二获得单元,具体用于:
设置获取错误码描述的接口,该接口根据根据错误码获取相应的错误码描述,并返回给用户。
该接口也是在错误码管理类中设置。具体实现如下:
Class ErrorMgr{
Public:
const char*Geterrordesc(int errorcode){
首先判断错误码的合法性:
if(errorcode<ERRNOBEGIN||errorcode>=ERRNOEND){
则说明此错误码并没有定义,所以无法获取其错误码描述。
Return NULL;则返回空。
}
Else{
const char*s=errnodesc[errorcode-ERRNOBEGIN];
依据错误码来得到对应的错误码描述s;
然后返回该错误码描述。
Return s;
}
}
从而一旦弹幕链接出错,得到了错误码后,则可以直接调用此接口返回对应的错误码描述。
const char*s=ErrorMgr::GetInstance()->Geterrordesc(errorcode);
从而可以对用户显示该错误码的描述。
基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述实施例中任一方法。
基于同一发明构思,本发明实施例还提供了一种计算机设备,如图3所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机设备可以为包括手机、平板电脑、PDA(Personal DigitalAssistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑、手提电脑、台式电脑等任意终端设备,以计算机设备为台式电脑为例:
图3示出的是与本发明实施例提供的计算机设备相关的部分结构的框图。参考图3,该计算机设备包括:存储器和处理器。本领域技术人员可以理解,图3中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图3对计算机设备的各个构成部件进行具体的介绍:
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器是计算机设备的控制中心,通过运行或执行存储在存储器内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。可选的,处理器可包括一个或多个处理单元;优选的,处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。
在本发明实施例中,该计算机设备所包括的处理器可以具有前述实施例中任一方法所对应的功能。
本发明公开了一种错误码的处理方法、装置、介质及设备,首先获得用于定义错误码的错误码基类,并对所述错误码基类进行特例化处理,以定义所述错误码,由于对错误码基类进行特例化处理,使得每个错误码在整个程序中仅存在唯一一个,从而使得与该错误码对应的错误码描述也是唯一的。其次,会获得错误码管理类,错误码管理类用于提供调用包含所述错误码的所有错误码的调用接口,以及用于生成并存储所述错误码对应的错误码描述信息,故而可以从错误码管理类中得到错误码和对应的错误码描述信息。通过上述技术方案,当所述弹幕链接发生错误之后,基于所述弹幕链接产生的错误信息,调用所述调用接口访问错误码管理类,以获得所述错误码,并从所述错误码管理类中提取出所述错误码描述信息;将所述错误码和所述错误码描述信息进行显示。由此可见,本发明从根本上解决了现有技术中的同一个错误码可能存在多个,且分别具有不同的含义,导致在发生错误时用户无法确定真正的错误描述的问题。能够保证每个错误码在整个程序中仅存在唯一一个,能够保证在发生错误时只会出现一个错误码。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种错误码的处理方法,其特征在于,所述方法包括:
获得用于定义错误码的错误码基类,并对所述错误码基类进行特例化处理,以定义所述错误码;其中,所述错误码是弹幕链接发生错误时产生的错误码;
获得错误码管理类,所述错误码管理类用于提供调用包含所述错误码的所有错误码的调用接口,以及用于生成并存储所述错误码对应的错误码描述信息;
当所述弹幕链接发生错误之后,基于所述弹幕链接产生的错误信息,调用所述调用接口访问错误码管理类,以获得所述错误码,并从所述错误码管理类中提取出所述错误码描述信息。
2.如权利要求1所述的方法,其特征在于,所述获得用于定义错误码的错误码基类,并对所述错误码基类进行特例化处理,包括:
使用C++语言的模板设计一模板类作为错误码基类;
并对错误码基类进行模板特例化处理。
3.如权利要求1所述的方法,其特征在于,所述错误码管理类为单件类。
4.如权利要求1所述的方法,其特征在于,所述获得错误码管理类,包括:
创建Error Mgr类;
基于Error Mgr类,构建错误码管理类的默认构造函数,并将该默认构成函数定义成私有的;
创建静态实例化指针,用于指向已经创建的Error Mgr类;
创建对外的错误码Error Mgr类访问接口,以使得开发者可以访问已经创建的ErrorMgr类;
创建错误码描述数组,用以存储所述错误码描述信息,所述错误码描述信息与所述错误码一一对应。
5.如权利要求4所述的方法,其特征在于,当开发者调用Error Mgr类访问接口时,接口先判断所要访问的类否已经创建了实例化对象,如果没有则创建一份,如果已经创建则返回创建的。
6.如权利要求1所述的方法,其特征在于,所述获得错误码管理类,包括:
设置错误码注册接口,以使开发者能够通过调用该接口注册错误码,所述错误码注册接口为宏接口。
7.如权利要求1所述的方法,其特征在于,所述获得错误码管理类,包括:
设置获取错误码描述信息的接口,该接口根据错误码获取相应的错误码描述信息,并返回给用户。
8.一种错误码的处理装置,其特征在于,所述装置包括:
第一获得单元,获得用于定义错误码的错误码基类,并对所述错误码基类进行特例化处理,以定义所述错误码;其中,所述错误码是弹幕链接发生错误时产生的错误码;
第二获得单元,获得错误码管理类,所述错误码管理类用于提供调用包含所述错误码的所有错误码的调用接口,以及用于生成并存储所述错误码对应的错误码描述信息;
管理单元,当所述弹幕链接发生错误之后,基于所述弹幕链接产生的错误信息,调用所述调用接口访问错误码管理类,以获得所述错误码,并从所述错误码管理类中提取出所述错误码描述信息。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7所述的方法。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7所述的方法。
CN201811201324.6A 2018-10-16 2018-10-16 一种错误码的处理方法、装置、介质及设备 Active CN109445770B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811201324.6A CN109445770B (zh) 2018-10-16 2018-10-16 一种错误码的处理方法、装置、介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811201324.6A CN109445770B (zh) 2018-10-16 2018-10-16 一种错误码的处理方法、装置、介质及设备

Publications (2)

Publication Number Publication Date
CN109445770A true CN109445770A (zh) 2019-03-08
CN109445770B CN109445770B (zh) 2022-06-17

Family

ID=65545582

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811201324.6A Active CN109445770B (zh) 2018-10-16 2018-10-16 一种错误码的处理方法、装置、介质及设备

Country Status (1)

Country Link
CN (1) CN109445770B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347560A (zh) * 2019-07-19 2019-10-18 深圳前海微众银行股份有限公司 大数据产品的异常提示方法、装置、系统、设备及介质
CN110502362A (zh) * 2019-08-22 2019-11-26 深圳前海环融联易信息科技服务有限公司 基于微服务架构的错误码定义方法、装置和计算机设备
CN117235107A (zh) * 2023-11-10 2023-12-15 恒生电子股份有限公司 数据访问处理方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6433881B1 (en) * 1998-12-30 2002-08-13 Pitney Bowes Inc. Method of establishing a set of print stream objects in an object oriented environment
CN107807884A (zh) * 2017-11-07 2018-03-16 国云科技股份有限公司 一种模块化管理错误码的方法
CN108089973A (zh) * 2016-11-23 2018-05-29 腾讯科技(深圳)有限公司 一种信息处理方法及设备
CN108255627A (zh) * 2016-12-28 2018-07-06 深圳市优朋普乐传媒发展有限公司 一种视频播放系统的错误处理方法及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6433881B1 (en) * 1998-12-30 2002-08-13 Pitney Bowes Inc. Method of establishing a set of print stream objects in an object oriented environment
CN108089973A (zh) * 2016-11-23 2018-05-29 腾讯科技(深圳)有限公司 一种信息处理方法及设备
CN108255627A (zh) * 2016-12-28 2018-07-06 深圳市优朋普乐传媒发展有限公司 一种视频播放系统的错误处理方法及设备
CN107807884A (zh) * 2017-11-07 2018-03-16 国云科技股份有限公司 一种模块化管理错误码的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
严悍 等: "特例化", 《高等院校"十三五"规划教材 新标准C++程序设计》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347560A (zh) * 2019-07-19 2019-10-18 深圳前海微众银行股份有限公司 大数据产品的异常提示方法、装置、系统、设备及介质
WO2021013058A1 (zh) * 2019-07-19 2021-01-28 深圳前海微众银行股份有限公司 大数据产品的异常提示方法、装置、系统、设备及介质
CN110347560B (zh) * 2019-07-19 2022-04-26 深圳前海微众银行股份有限公司 大数据产品的异常提示方法、装置、系统、设备及介质
CN110502362A (zh) * 2019-08-22 2019-11-26 深圳前海环融联易信息科技服务有限公司 基于微服务架构的错误码定义方法、装置和计算机设备
CN117235107A (zh) * 2023-11-10 2023-12-15 恒生电子股份有限公司 数据访问处理方法、装置、电子设备及存储介质
CN117235107B (zh) * 2023-11-10 2024-01-26 恒生电子股份有限公司 数据访问处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN109445770B (zh) 2022-06-17

Similar Documents

Publication Publication Date Title
CN110249307A (zh) 用于在区块链上执行原生合约的系统和方法
US10943589B2 (en) Voice application platform
CN104375861B (zh) 基于安卓平台的应用程序免安装运行的方法、装置及终端
CN103929343B (zh) 一对多数据投影系统和方法
JP4897837B2 (ja) ユーザインターフェースコンポーネントをワイヤレスデバイスにダウンロードするシステムおよび方法
CN109445770A (zh) 一种错误码的处理方法、装置、介质及设备
CN108786112B (zh) 一种应用场景配置方法、装置和存储介质
CN108415710A (zh) 在智能对话开发平台上发布、调用api的方法和系统
CN106682028A (zh) 获取网页应用的方法、装置及系统
CN109716331A (zh) 符合应用程序数据共享和决策服务平台模式的应用程序部署
CN109639636A (zh) 业务数据转发、业务数据处理方法、装置及电子设备
CN109408751A (zh) 一种数据处理方法、终端、服务器及存储介质
CN106302750A (zh) 一种展示用户界面互动内容的方法、装置、服务器和系统
CN107153529A (zh) 一种嵌入式软件开发方法、装置及平台
CN109614312A (zh) 测试用例生成方法、装置、电子设备及存储介质
EP2538708A1 (en) Method and system for processing value-added service
CN106598662A (zh) 基于android的应用加载方法及装置
Burgy et al. Language technology for internet-telephony service creation
CN112270003B (zh) 一种多业务动态配置数据源方法、平台及电子设备
CN103425473B (zh) 一种开放式微博的实现方法和系统
CN116974581A (zh) 代码生成方法、装置、电子设备和存储介质
CN110147294A (zh) 调试信息的获取方法、装置、终端及计算机可读存储介质
CN108769249A (zh) iOS高性能高扩展网络架构及实现方法、服务器及介质
Serrano et al. Towards precise security patterns
CN106874088B (zh) 一种应用程序自启动的处理方法、装置及移动终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20231223

Address after: Room 21032, Floor 9, Building 2, Micro World, No. 23, Century Avenue, Liuwu New District, Lhasa, Xizang Autonomous Region, 850000

Patentee after: Xizang Laicheng Technology Co.,Ltd.

Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right