CN108182124A - 一种数据容错方法、设备及计算机可读存储介质 - Google Patents

一种数据容错方法、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN108182124A
CN108182124A CN201711478384.8A CN201711478384A CN108182124A CN 108182124 A CN108182124 A CN 108182124A CN 201711478384 A CN201711478384 A CN 201711478384A CN 108182124 A CN108182124 A CN 108182124A
Authority
CN
China
Prior art keywords
fault
tolerant
function
data format
format
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.)
Pending
Application number
CN201711478384.8A
Other languages
English (en)
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.)
Wuba Co Ltd
Original Assignee
Wuba 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 Wuba Co Ltd filed Critical Wuba Co Ltd
Priority to CN201711478384.8A priority Critical patent/CN108182124A/zh
Publication of CN108182124A publication Critical patent/CN108182124A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0718Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an object-oriented system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明提出了一种数据容错方法,包括:当任一设定数据格式的对象接收到数据时,判断所述数据的格式是否与所述任一设定数据格式匹配;在判定所述数据的格式与所述任一设定数据格式不匹配的情况下,通过设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值。本发明还公开了一种数据容错设备及计算机可读存储介质,通过实施上述方案,通过在设定函数集合中设置每个设定数据格式对应的容错函数,避免了容错函数与APP业务代码之间的耦合关系,同时避免了在APP业务代码中重复设置容错函数,提升了APP业务代码的维护方便性和扩展性;有效地提高了APP的代码容错率,有效避免了APP崩溃,有效提高了APP的稳定性。

Description

一种数据容错方法、设备及计算机可读存储介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据容错方法、设备及计算机可读存储介质。
背景技术
在苹果公司开发的移动操作系统iOS系统中开发的APP(Application,应用程序),由于接收消息的对象并不能识别接收到的消息,无法继续下一步操作,导致类型为unrecognized selector sent to instance(发送给对象无法识别的消息)的APP崩溃。
现有技术中,对该类型的APP崩溃的解决方案是在APP的代码中可能产生数据异常的位置,分别进行容错处理。例如:在处理字典data(数据)前,先判断data是否是字典的格式;如果是字典的格式,则对字典data的某个键值对取值。但是该容错处理的方案容易造成耦合关系,同时在APP的代码中会使用大量的重复代码,不利于APP程序代码的长期迭代维护。
发明内容
本发明提供一种数据容错方法、设备及计算机可读存储介质,用以解决现有技术中在APP的代码中由于存在大量的重复容错代码,导致APP程序代码不利于维护的问题。
本发明采用的技术方案是,所述数据容错方法,包括:
当任一设定数据格式的对象接收到数据时,判断所述数据的格式是否与所述任一设定数据格式匹配;
在判定所述数据的格式与所述任一设定数据格式不匹配的情况下,通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值。
可选地,所述设定函数集合为NSObject类;
在所述任一设定数据格式的对象接收到数据之前,所述方法还包括:
通过运行时Runtime的应用程序编程接口API,在所述NSObject类中设置每个所述设定数据格式对应的容错函数。
可选地,所述设定数据格式至少包括以下数据格式之一:
字典格式、数组格式和字符串格式。
可选地,所述容错值包括零值;
所述通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值,包括:
在所述设定数据格式为所述字符串格式的情况下,通过调用设定函数集合中的所述字符串格式对应的预设容错函数返回零值。
可选地,所述容错值包括空值;
所述通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值,包括:
在所述设定数据格式为所述字典格式的情况下,通过调用设定函数集合中的所述字典格式对应的预设容错函数返回空值。
可选地,所述容错值包括空值;
所述通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值,包括:
在所述设定数据格式为所述数组格式的情况下,通过调用设定函数集合中的所述数组格式对应的预设容错函数返回空值。
本发明还提供一种数据容错设备,所述数据容错设备包括处理器和存储器;
所述处理器用于执行存储器中存储的数据容错的程序,以实现以下步骤:
当任一设定数据格式的对象接收到数据时,判断所述数据的格式是否与所述任一设定数据格式匹配;
在判定所述数据的格式与所述任一设定数据格式不匹配的情况下,通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值。
可选地,所述设定函数集合为NSObject类;
在所述任一设定数据格式的对象接收到数据之前,所述处理器还用于执行所述数据容错的程序,以实现以下步骤:
通过运行时Runtime的应用程序编程接口API,在所述NSObject类中设置每个所述设定数据格式对应的容错函数。
可选地,所述设定数据格式至少包括以下数据格式之一:
字典格式、数组格式和字符串格式。
可选地,所述容错值包括零值;
所述通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值,包括:
在所述设定数据格式为所述字符串格式的情况下,通过调用设定函数集合中的所述字符串格式对应的预设容错函数返回零值。
可选地,所述容错值包括空值;
所述通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值,包括:
在所述设定数据格式为所述字典格式的情况下,通过调用设定函数集合中的所述字典格式对应的预设容错函数返回空值。
可选地,所述容错值包括空值;
所述通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值,包括:
在所述设定数据格式为所述数组格式的情况下,通过调用设定函数集合中的所述数组格式对应的预设容错函数返回空值。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的数据容错的方法的步骤。
采用上述技术方案,本发明至少具有下列优点:
本发明所述一种数据容错方法、设备及计算机可读存储介质,通过在设定函数集合中设置每个设定数据格式对应的容错函数,避免了容错函数与APP业务代码之间的耦合关系,同时避免了在APP业务代码中重复设置容错函数,提升了APP业务代码的维护方便性和扩展性;有效地提高了APP的代码容错率,有效避免了APP崩溃,有效提高了APP的安全性和稳定性。
附图说明
图1为本发明第一实施例的数据容错方法流程图;
图2为本发明第二实施例的数据容错方法流程图;
图3为本发明第三实施例的数据容错方法流程图;
图4为本发明第四至第六实施例的数据容错设备组成结构示意图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
本发明第一实施例,一种数据容错方法,如图1所示,包括以下具体步骤:
步骤S101,当任一设定数据格式的对象接收到数据时,判断该数据的格式是否与任一设定数据格式匹配。
在本实施例中,对设定数据格式不做具体限定,可以是字典(NSDictionary)格式,也可以是数组(NSArray)格式,也可以是字符串(NSString)格式。
步骤S102,在判定该数据的格式与任一设定数据格式不匹配的情况下,通过调用设定函数集合中的任一设定数据格式对应的预设容错函数返回容错值。
可选地,设定函数集合为NSObject类。
可选地,步骤S102,包括:
在判定该数据的格式与任一设定数据格式不匹配的情况下,通过调用NSObject类中的任一设定数据格式对应的预设容错函数返回容错值。
通过在NSObject类中预设每个设定数据格式对应的容错函数,避免了每个设定数据格式接收到错误格式的数据,导致的类型为unrecognized selector sent to instance的崩溃,有效地提高了APP的代码容错率,有效避免了APP崩溃,有效提高了APP的安全性和稳定性。
通过在设定函数集合中预设每个设定数据格式对应的容错函数,判断设定数据格式的对象接收到数据的格式是否合法,并在设定数据格式的对象接收到数据的格式不合法的情况下,通过预设的容错函数对设定数据格式的对象返回设定值,以使APP能够正常运行,有效地避免设定数据格式的对象接收到错误格式的数据,导致的类型为unrecognizedselector sent to instance的APP崩溃,有效地提高了APP的代码容错率,有效提高了APP的安全性和稳定性。
本发明第一实施例所述的一种数据容错方法,通过在设定函数集合中预设每个设定数据格式对应的容错函数,避免了每个设定数据格式接收到错误格式的数据,导致的类型为unrecognized selector sent to instance的崩溃;避免了容错函数与APP业务代码之间的耦合关系,同时避免了在APP业务代码中重复设置容错函数,提升了APP业务代码的维护方便性和扩展性;有效地提高了APP的代码容错率,有效避免了APP崩溃,有效提高了APP的安全性和稳定性。
本发明第二实施例,一种数据容错方法,如图2所示,包括以下具体步骤:
步骤S201,通过Runtime(运行时)的API(Application Programming Interface,应用程序编程接口),在设定函数集合中设置每个设定数据格式对应的容错函数。
可选地,设定函数集合为NSObject类。
可选地,步骤S201,包括:
通过Runtime的API,在NSObject类中设置每个设定数据格式对应的容错函数。
其中,在Objective-C语言中,所有的类都有一个基类NSObject类。
在本实施例中,设定数据格式至少包括以下数据格式之一:字典(NSDictionary)格式,数组(NSArray)格式和字符串(NSString)格式。
可选地,步骤S201,包括:
通过Runtime的API,在NSObject类中设置字符串格式对应的容错函数:LENGTH函数;
在NSObject类中设置字典格式对应的容错函数:objectForKey函数和objectForKeyedSubscript:函数;
在NSObject类中设置数组格式对应的容错函数:objectAtIndex函数和objectAtIndexedSubscript函数。
通过在NSObject类中设置每个设定数据格式对应的容错函数,避免了容错函数与APP业务代码之间的耦合关系,同时避免了在APP业务代码中重复设置容错函数,提升了APP业务代码的维护方便性和扩展性。
步骤S202,当任一设定数据格式的对象接收到数据时,判断该数据的格式是否与该任一设定数据格式匹配。
步骤S203,在判定该数据的格式与任一设定数据格式不匹配的情况下,通过调用设定函数集合中的任一设定数据格式对应的预设容错函数返回容错值。
可选地,步骤S203,包括:
在判定该数据的格式与任一设定数据格式不匹配的情况下,通过调用NSObject类中的任一设定数据格式对应的预设容错函数返回容错值。
例如:在判定该数据的格式与字符串格式不匹配的情况下,通过NSObject类中字符串格式对应的容错函数(LENGTH函数)返回设定值。
又如:在判定该数据的格式与数组格式不匹配的情况下,通过NSObject类中数组格式对应的容错函数(objectAtIndex函数和objectAtIndexedSubscript函数)返回设定值。
又如:在判定该数据的格式与字典格式不匹配的情况下,通过NSObject类中字典格式对应的容错函数(objectForKey函数和objectForKeyedSubscript函数)返回设定值。
通过在设定函数集合中预设每个设定数据格式对应的容错函数,判断设定数据格式的对象接收到数据的格式是否合法,并在设定数据格式的对象接收到数据的格式不合法的情况下,通过预设的容错函数对设定数据格式的对象返回设定值,以使APP能够正常运行,有效地避免设定数据格式的对象接收到错误格式的数据,导致的类型为unrecognizedselector sent to instance的APP崩溃,有效地提高了APP的代码容错率,有效提高了APP的安全性和稳定性。
本发明第二实施例所述的一种数据容错方法,通过在设定函数集合中预设每个设定数据格式对应的容错函数,避免了每个设定数据格式接收到错误格式的数据,导致的类型为unrecognized selector sent to instance的崩溃;避免了容错函数与APP业务代码之间的耦合关系,同时避免了在APP业务代码中重复设置容错函数,提升了APP业务代码的维护方便性和扩展性;有效地提高了APP的代码容错率,有效避免了APP崩溃,有效提高了APP的安全性和稳定性。
本发明第三实施例,一种数据容错方法,如图3所示,包括以下具体步骤:
步骤S301,通过Runtime的API,在设定函数集合中设置每个设定数据格式对应的容错函数。
可选地,设定函数集合为NSObject类。
可选地,步骤S301,包括:
通过Runtime的API,在NSObject类中设置每个设定数据格式对应的容错函数。
其中,在Objective-C语言中,所有的类都有一个基类NSObject类。
在本实施例中,设定数据格式至少包括以下数据格式之一:字典格式,数组格式和字符串格式。
可选地,步骤S301,包括:
通过Runtime的API,在NSObject类中设置字符串格式对应的容错函数:LENGTH函数;
在NSObject类中设置字典格式对应的容错函数:objectForKey函数和objectForKeyedSubscript:函数;
在NSObject类中设置数组格式对应的容错函数:objectAtIndex函数和objectAtIndexedSubscript函数。
通过在NSObject类中设置每个设定数据格式对应的容错函数,避免了容错函数与APP业务代码之间的耦合关系,同时避免了在APP业务代码中重复设置容错函数,提升了APP业务代码的维护方便性和扩展性。
步骤S302,当任一设定数据格式的对象接收到数据时,判断该数据的格式是否与该任一设定数据格式匹配。
步骤S303,在判定该数据的格式与任一设定数据格式不匹配的情况下,通过调用设定函数集合中的任一设定数据格式对应的预设容错函数返回容错值。
可选地,步骤S303,包括:
在判定该数据的格式与任一设定数据格式不匹配的情况下,通过调用NSObject类中的任一设定数据格式对应的预设容错函数返回容错值。
可选地,通过调用设定函数集合中的任一设定数据格式对应的预设容错函数返回容错值的方式,包括:
该容错值包括零值;
在设定数据格式为字符串格式的情况下,通过调用设定函数集合中的字符串格式对应的预设容错函数返回零值。
可选地,通过调用设定函数集合中的任一设定数据格式对应的预设容错函数返回容错值的方式,包括:
该容错值包括空值;
在设定数据格式为字典格式的情况下,通过调用设定函数集合中的字典格式对应的预设容错函数返回空值。
可选地,通过调用设定函数集合中的任一设定数据格式对应的预设容错函数返回容错值的方式,包括:
该容错值包括空值;
在设定数据格式为数组格式的情况下,通过调用设定函数集合中的数组格式对应的预设容错函数返回空值。
例如:在判定该数据的格式与字符串格式不匹配的情况下,通过NSObject类中字符串格式对应的容错函数(LENGTH函数)返回零值。
又如:在判定该数据的格式与数组格式不匹配的情况下,通过NSObject类中数组格式对应的容错函数(objectAtIndex函数和objectAtIndexedSubscript函数)返回空值。
又如:在判定该数据的格式与字典格式不匹配的情况下,通过NSObject类中字典格式对应的容错函数(objectForKey函数和objectForKeyedSubscript函数)返回空值。
通过在设定函数集合中预设每个设定数据格式对应的容错函数,判断设定数据格式的对象接收到数据的格式是否合法,并在设定数据格式的对象接收到数据的格式不合法的情况下,通过预设的容错函数对设定数据格式的对象返回设定值,以使APP能够正常运行,有效地避免设定数据格式的对象接收到错误格式的数据,导致的类型为unrecognizedselector sent to instance的APP崩溃,有效地提高了APP的代码容错率,有效提高了APP的安全性和稳定性。
本发明第三实施例所述的一种数据容错方法,通过在设定函数集合中预设每个设定数据格式对应的容错函数,避免了每个设定数据格式接收到错误格式的数据,导致的类型为unrecognized selector sent to instance的崩溃;避免了容错函数与APP业务代码之间的耦合关系,同时避免了在APP业务代码中重复设置容错函数,提升了APP业务代码的维护方便性和扩展性;有效地提高了APP的代码容错率,有效避免了APP崩溃,有效提高了APP的安全性和稳定性。
本发明第四实施例,一种数据容错设备,如图4所示,包括以下组成部分:
处理器501和存储器502。在本发明的一些实施例中,处理器501和存储器502可通过总线或者其它方式连接。
处理器501可以是通用处理器,例如中央处理器(Central Processing Unit,CPU),还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(英文:Application Specific Integrated Circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。其中,存储器502用于存储处理器501的可执行指令;
存储器502,用于存储程序代码,并将该程序代码传输给处理器501。存储器502可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器502也可以包括非易失性存储器(Non-Volatile Memory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器502还可以包括上述种类的存储器的组合。
其中,处理器501用于调用存储器502存储的程序代码管理代码,执行如下操作:
1)当任一设定数据格式的对象接收到数据时,判断该数据的格式是否与任一设定数据格式匹配。
在本实施例中,对设定数据格式不做具体限定,可以是字典格式,也可以是数组格式,也可以是字符串格式。
2)在判定该数据的格式与任一设定数据格式不匹配的情况下,通过调用设定函数集合中的任一设定数据格式对应的预设容错函数返回容错值。
可选地,设定函数集合为NSObject类。
可选地,在判定该数据的格式与任一设定数据格式不匹配的情况下,通过调用设定函数集合中的任一设定数据格式对应的预设容错函数返回容错值的方式,包括:
在判定该数据的格式与任一设定数据格式不匹配的情况下,通过调用NSObject类中的任一设定数据格式对应的预设容错函数返回容错值。
通过在NSObject类中预设每个设定数据格式对应的容错函数,避免了每个设定数据格式接收到错误格式的数据,导致的类型为unrecognized selector sent to instance的崩溃,有效地提高了APP的代码容错率,有效避免了APP崩溃,有效提高了APP的安全性和稳定性。
通过在设定函数集合中预设每个设定数据格式对应的容错函数,判断设定数据格式的对象接收到数据的格式是否合法,并在设定数据格式的对象接收到数据的格式不合法的情况下,通过预设的容错函数对设定数据格式的对象返回设定值,以使APP能够正常运行,有效地避免设定数据格式的对象接收到错误格式的数据,导致的类型为unrecognizedselector sent to instance的APP崩溃,有效地提高了APP的代码容错率,有效提高了APP的安全性和稳定性。
本发明第四实施例所述的一种数据容错设备,通过在设定函数集合中预设每个设定数据格式对应的容错函数,避免了每个设定数据格式接收到错误格式的数据,导致的类型为unrecognized selector sent to instance的崩溃;避免了容错函数与APP业务代码之间的耦合关系,同时避免了在APP业务代码中重复设置容错函数,提升了APP业务代码的维护方便性和扩展性;有效地提高了APP的代码容错率,有效避免了APP崩溃,有效提高了APP的安全性和稳定性。
本发明第五实施例,一种数据容错设备,如图4所示,包括以下组成部分:
处理器501和存储器502。在本发明的一些实施例中,处理器501和存储器502可通过总线或者其它方式连接。
处理器501可以是通用处理器,例如中央处理器(Central Processing Unit,CPU),还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(英文:Application Specific Integrated Circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。其中,存储器502用于存储处理器501的可执行指令;
存储器502,用于存储程序代码,并将该程序代码传输给处理器501。存储器502可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器502也可以包括非易失性存储器(Non-Volatile Memory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器502还可以包括上述种类的存储器的组合。
其中,处理器501用于调用存储器502存储的程序代码管理代码,执行如下操作:
1)通过Runtime的API,在设定函数集合中设置每个设定数据格式对应的容错函数。
可选地,设定函数集合为NSObject类。
可选地,通过Runtime的API,在设定函数集合中设置每个设定数据格式对应的容错函数的方式,包括:
通过Runtime的API,在NSObject类中设置每个设定数据格式对应的容错函数。
其中,在Objective-C语言中,所有的类都有一个基类NSObject类。
在本实施例中,设定数据格式至少包括以下数据格式之一:字典格式,数组格式和字符串格式。
可选地,通过Runtime API,在NSObject类中设置每个设定数据格式对应的容错函数的方式,包括:
通过Runtime的API,在NSObject类中设置字符串格式对应的容错函数:LENGTH函数;
在NSObject类中设置字典格式对应的容错函数:objectForKey函数和objectForKeyedSubscript:函数;
在NSObject类中设置数组格式对应的容错函数:objectAtIndex函数和objectAtIndexedSubscript函数。
通过在NSObject类中设置每个设定数据格式对应的容错函数,避免了容错函数与APP业务代码之间的耦合关系,同时避免了在APP业务代码中重复设置容错函数,提升了APP业务代码的维护方便性和扩展性。
2)当任一设定数据格式的对象接收到数据时,判断该数据的格式是否与该任一设定数据格式匹配。
3)在判定该数据的格式与任一设定数据格式不匹配的情况下,通过调用设定函数集合中的任一设定数据格式对应的预设容错函数返回容错值。
可选地,在判定该数据的格式与任一设定数据格式不匹配的情况下,通过调用设定函数集合中的任一设定数据格式对应的预设容错函数返回容错值的方式,包括:
在判定该数据的格式与任一设定数据格式不匹配的情况下,通过调用NSObject类中的任一设定数据格式对应的预设容错函数返回容错值。
例如:在判定该数据的格式与字符串格式不匹配的情况下,通过NSObject类中字符串格式对应的容错函数(LENGTH函数)返回设定值。
又如:在判定该数据的格式与数组格式不匹配的情况下,通过NSObject类中数组格式对应的容错函数(objectAtIndex函数和objectAtIndexedSubscript函数)返回设定值。
又如:在判定该数据的格式与字典格式不匹配的情况下,通过NSObject类中字典格式对应的容错函数(objectForKey函数和objectForKeyedSubscript函数)返回设定值。
通过在设定函数集合中预设每个设定数据格式对应的容错函数,判断设定数据格式的对象接收到数据的格式是否合法,并在设定数据格式的对象接收到数据的格式不合法的情况下,通过预设的容错函数对设定数据格式的对象返回设定值,以使APP能够正常运行,有效地避免设定数据格式的对象接收到错误格式的数据,导致的类型为unrecognizedselector sent to instance的APP崩溃,有效地提高了APP的代码容错率,有效提高了APP的安全性和稳定性。
本发明第五实施例所述的一种数据容错设备,通过在设定函数集合中预设每个设定数据格式对应的容错函数,避免了每个设定数据格式接收到错误格式的数据,导致的类型为unrecognized selector sent to instance的崩溃;避免了容错函数与APP业务代码之间的耦合关系,同时避免了在APP业务代码中重复设置容错函数,提升了APP业务代码的维护方便性和扩展性;有效地提高了APP的代码容错率,有效避免了APP崩溃,有效提高了APP的安全性和稳定性。
本发明第六实施例,一种数据容错设备,如图4所示,包括以下组成部分:
处理器501和存储器502。在本发明的一些实施例中,处理器501和存储器502可通过总线或者其它方式连接。
处理器501可以是通用处理器,例如中央处理器(Central Processing Unit,CPU),还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(英文:Application Specific Integrated Circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。其中,存储器502用于存储处理器501的可执行指令;
存储器502,用于存储程序代码,并将该程序代码传输给处理器501。存储器502可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器502也可以包括非易失性存储器(Non-Volatile Memory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器502还可以包括上述种类的存储器的组合。
其中,处理器501用于调用存储器502存储的程序代码管理代码,执行如下操作:
1)通过Runtime的API,在设定函数集合中设置每个设定数据格式对应的容错函数。
可选地,设定函数集合为NSObject类。
可选地,通过Runtime的API,在设定函数集合中设置每个设定数据格式对应的容错函数的方式,包括:
通过Runtime的API,在NSObject类中设置每个设定数据格式对应的容错函数。
其中,在Objective-C语言中,所有的类都有一个基类NSObject类。
在本实施例中,设定数据格式至少包括以下数据格式之一:字典格式,数组格式和字符串格式。
可选地,通过Runtime的API,在NSObject类中设置每个设定数据格式对应的容错函数的方式,包括:
通过Runtime API,在NSObject类中设置字符串格式对应的容错函数:LENGTH函数;
在NSObject类中设置字典格式对应的容错函数:objectForKey函数和objectForKeyedSubscript:函数;
在NSObject类中设置数组格式对应的容错函数:objectAtIndex函数和objectAtIndexedSubscript函数。
通过在NSObject类中设置每个设定数据格式对应的容错函数,避免了容错函数与APP业务代码之间的耦合关系,同时避免了在APP业务代码中重复设置容错函数,提升了APP业务代码的维护方便性和扩展性。
2)当任一设定数据格式的对象接收到数据时,判断该数据的格式是否与该任一设定数据格式匹配。
3)在判定该数据的格式与任一设定数据格式不匹配的情况下,通过调用设定函数集合中的任一设定数据格式对应的预设容错函数返回容错值。
可选地,在判定该数据的格式与任一设定数据格式不匹配的情况下,通过调用设定函数集合中的任一设定数据格式对应的预设容错函数返回容错值的方式,包括:
在判定该数据的格式与任一设定数据格式不匹配的情况下,通过调用NSObject类中的任一设定数据格式对应的预设容错函数返回容错值。
可选地,通过调用设定函数集合中的任一设定数据格式对应的预设容错函数返回容错值的方式,包括:
该容错值包括零值;
在设定数据格式为字符串格式的情况下,通过调用设定函数集合中的字符串格式对应的预设容错函数返回零值。
可选地,通过调用设定函数集合中的任一设定数据格式对应的预设容错函数返回容错值的方式,包括:
该容错值包括空值;
在设定数据格式为字典格式的情况下,通过调用设定函数集合中的字典格式对应的预设容错函数返回空值。
可选地,通过调用设定函数集合中的任一设定数据格式对应的预设容错函数返回容错值的方式,包括:
该容错值包括空值;
在设定数据格式为数组格式的情况下,通过调用设定函数集合中的数组格式对应的预设容错函数返回空值。
例如:在判定该数据的格式与字符串格式不匹配的情况下,通过NSObject类中字符串格式对应的容错函数(LENGTH函数)返回零值。
又如:在判定该数据的格式与数组格式不匹配的情况下,通过NSObject类中数组格式对应的容错函数(objectAtIndex函数和objectAtIndexedSubscript函数)返回空值。
又如:在判定该数据的格式与字典格式不匹配的情况下,通过NSObject类中字典格式对应的容错函数(objectForKey函数和objectForKeyedSubscript函数)返回空值。
通过在设定函数集合中预设每个设定数据格式对应的容错函数,判断设定数据格式的对象接收到数据的格式是否合法,并在设定数据格式的对象接收到数据的格式不合法的情况下,通过预设的容错函数对设定数据格式的对象返回设定值,以使APP能够正常运行,有效地避免设定数据格式的对象接收到错误格式的数据,导致的类型为unrecognizedselector sent to instance的APP崩溃,有效地提高了APP的代码容错率,有效提高了APP的安全性和稳定性。
本发明第六实施例所述的一种数据容错设备,通过在设定函数集合中预设每个设定数据格式对应的容错函数,避免了每个设定数据格式接收到错误格式的数据,导致的类型为unrecognized selector sent to instance的崩溃;避免了容错函数与APP业务代码之间的耦合关系,同时避免了在APP业务代码中重复设置容错函数,提升了APP业务代码的维护方便性和扩展性;有效地提高了APP的代码容错率,有效避免了APP崩溃,有效提高了APP的安全性和稳定性。
本发明第七实施例,一种计算机可读存储介质。
计算机存储介质可以是RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域已知的任何其他形式的存储介质。
计算机可读存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现本发明第一实施例至本发明第三实施例中任一实施例中部分或全部步骤。
通过在设定函数集合中预设每个设定数据格式对应的容错函数,判断设定数据格式的对象接收到数据的格式是否合法,并在设定数据格式的对象接收到数据的格式不合法的情况下,通过预设的容错函数对设定数据格式的对象返回设定值,以使APP能够正常运行,有效地避免设定数据格式的对象接收到错误格式的数据,导致的类型为unrecognizedselector sent to instance的APP崩溃,有效地提高了APP的代码容错率,有效提高了APP的安全性和稳定性。
本发明第七实施例所述的计算机可读存储介质,存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,通过在设定函数集合中预设每个设定数据格式对应的容错函数,避免了每个设定数据格式接收到错误格式的数据,导致的类型为unrecognized selector sent to instance的崩溃;避免了容错函数与APP业务代码之间的耦合关系,同时避免了在APP业务代码中重复设置容错函数,提升了APP业务代码的维护方便性和扩展性;有效地提高了APP的代码容错率,有效避免了APP崩溃,有效提高了APP的安全性和稳定性。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (13)

1.一种数据容错方法,其特征在于,包括:
当任一设定数据格式的对象接收到数据时,判断所述数据的格式是否与所述任一设定数据格式匹配;
在判定所述数据的格式与所述任一设定数据格式不匹配的情况下,通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值。
2.根据权利要求1所述的方法,其特征在于,所述设定函数集合为NSObject类;
在所述任一设定数据格式的对象接收到数据之前,所述方法还包括:
通过运行时Runtime的应用程序编程接口API,在所述NSObject类中设置每个所述设定数据格式对应的容错函数。
3.根据权利要求1或2所述的方法,其特征在于,所述设定数据格式至少包括以下数据格式之一:
字典格式、数组格式和字符串格式。
4.根据权利要求3所述的方法,其特征在于,所述容错值包括零值;
所述通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值,包括:
在所述设定数据格式为所述字符串格式的情况下,通过调用设定函数集合中的所述字符串格式对应的预设容错函数返回零值。
5.根据权利要求3所述的方法,其特征在于,所述容错值包括空值;
所述通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值,包括:
在所述设定数据格式为所述字典格式的情况下,通过调用设定函数集合中的所述字典格式对应的预设容错函数返回空值。
6.根据权利要求3所述的方法,其特征在于,所述容错值包括空值;
所述通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值,包括:
在所述设定数据格式为所述数组格式的情况下,通过调用设定函数集合中的所述数组格式对应的预设容错函数返回空值。
7.一种数据容错设备,其特征在于,所述数据容错设备包括处理器和存储器;
所述处理器用于执行存储器中存储的数据容错的程序,以实现以下步骤:
当任一设定数据格式的对象接收到数据时,判断所述数据的格式是否与所述任一设定数据格式匹配;
在判定所述数据的格式与所述任一设定数据格式不匹配的情况下,通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值。
8.根据权利要求7所述的设备,其特征在于,所述设定函数集合为NSObject类;
在所述任一设定数据格式的对象接收到数据之前,所述处理器还用于执行所述数据容错的程序,以实现以下步骤:
通过运行时Runtime的应用程序编程接口API,在所述NSObject类中设置每个所述设定数据格式对应的容错函数。
9.根据权利要求7或8所述的设备,其特征在于,所述设定数据格式至少包括以下数据格式之一:
字典格式、数组格式和字符串格式。
10.根据权利要求9所述的设备,其特征在于,所述容错值包括零值;
所述通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值,包括:
在所述设定数据格式为所述字符串格式的情况下,通过调用设定函数集合中的所述字符串格式对应的预设容错函数返回零值。
11.根据权利要求9所述的设备,其特征在于,所述容错值包括空值;
所述通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值,包括:
在所述设定数据格式为所述字典格式的情况下,通过调用设定函数集合中的所述字典格式对应的预设容错函数返回空值。
12.根据权利要求9所述的设备,其特征在于,所述容错值包括空值;
所述通过调用设定函数集合中的所述任一设定数据格式对应的预设容错函数返回容错值,包括:
在所述设定数据格式为所述数组格式的情况下,通过调用设定函数集合中的所述数组格式对应的预设容错函数返回空值。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现根据权利要求1~6中任一项所述的数据容错方法的步骤。
CN201711478384.8A 2017-12-29 2017-12-29 一种数据容错方法、设备及计算机可读存储介质 Pending CN108182124A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711478384.8A CN108182124A (zh) 2017-12-29 2017-12-29 一种数据容错方法、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711478384.8A CN108182124A (zh) 2017-12-29 2017-12-29 一种数据容错方法、设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN108182124A true CN108182124A (zh) 2018-06-19

Family

ID=62548897

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711478384.8A Pending CN108182124A (zh) 2017-12-29 2017-12-29 一种数据容错方法、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN108182124A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156314A (zh) * 2014-08-14 2014-11-19 北京航空航天大学 一种应用于测试系统的代码重用方法
CN105653383A (zh) * 2015-12-30 2016-06-08 深圳市鼎芯无限科技有限公司 数据的容错处理方法和装置
CN106371940A (zh) * 2015-07-21 2017-02-01 腾讯科技(深圳)有限公司 一种程序崩溃解决方法及装置
CN106571975A (zh) * 2016-10-19 2017-04-19 武汉斗鱼网络科技有限公司 一种通信数据的容错方法及装置
WO2017152079A1 (en) * 2016-03-04 2017-09-08 Codepinch, Llc Computer-implemented system and method for automating web application runtime error repairing
CN107239316A (zh) * 2017-04-20 2017-10-10 武汉斗鱼网络科技有限公司 一种函数的优化处理方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156314A (zh) * 2014-08-14 2014-11-19 北京航空航天大学 一种应用于测试系统的代码重用方法
CN106371940A (zh) * 2015-07-21 2017-02-01 腾讯科技(深圳)有限公司 一种程序崩溃解决方法及装置
CN105653383A (zh) * 2015-12-30 2016-06-08 深圳市鼎芯无限科技有限公司 数据的容错处理方法和装置
WO2017152079A1 (en) * 2016-03-04 2017-09-08 Codepinch, Llc Computer-implemented system and method for automating web application runtime error repairing
CN106571975A (zh) * 2016-10-19 2017-04-19 武汉斗鱼网络科技有限公司 一种通信数据的容错方法及装置
CN107239316A (zh) * 2017-04-20 2017-10-10 武汉斗鱼网络科技有限公司 一种函数的优化处理方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
从现在开始积累还来得及吗君: "OC防犯越界崩溃策略整理", 《HTTPS://BLOG.CSDN.NET/RAMBO_QIU/ARTICLE/DETAILS/78159871》 *
林大鹏天地: "OC工具类:防崩溃策略(runtime机制)", 《HTTPS://WWW.JIANSHU.COM/P/BEA2BFED3F3F》 *

Similar Documents

Publication Publication Date Title
US7412575B2 (en) Data management technique for improving data reliability
US8407478B2 (en) Control message signature for device control
CN101194451B (zh) 用于迭代解码器中的功率减小的方法及装置
US9471421B2 (en) Data accessing method, memory storage device and memory controlling circuit unit
US10103748B2 (en) Decoding method, memory control circuit unit and memory storage device
US20180013445A1 (en) Decoding method, and memory storage apparatus and memory control circuit unit using the same
US9348692B2 (en) Flash memory apparatus, memory controller and method for controlling flash memory
CN103270497A (zh) 实时错误恢复的方法和系统
CN108319854A (zh) 一种增量代码静态扫描方法、设备及计算机可读存储介质
US20170302294A1 (en) Data processing method and system based on quasi-cyclic ldpc
US10200063B2 (en) Memory controller, semiconductor memory system and operating method thereof
US20180006669A1 (en) Decoding method, memory controlling circuit unit and memory storage device
CN105005453A (zh) 星载nand flash固存坏区管理系统
US10116335B2 (en) Data processing method, memory storage device and memory control circuit unit
CN107992268B (zh) 一种坏块标记的方法及相关装置
US10719389B2 (en) Enhanced data storage with concatenated inner and outer error correction codes
CN103092717A (zh) 闪存的数据处理方法及装置
US8769351B2 (en) Mobile device and method for correcting errors occurring in attention commands of the mobile device
CN108182124A (zh) 一种数据容错方法、设备及计算机可读存储介质
US9354970B2 (en) Method and apparatus for encoding erroneous data in an error correction code protected memory
CN109284268B (zh) 一种快速解析日志的方法、系统及电子设备
CN105653383A (zh) 数据的容错处理方法和装置
CN105790774A (zh) 一种改进型ldpc译码方法及装置
US9954556B2 (en) Scheme to avoid miscorrection for turbo product codes
CN105893167A (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