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

文档序号:14950550发布日期:2018-07-17 22:27阅读:157来源:国知局

本发明涉及数据处理技术领域,尤其涉及一种数据容错方法、设备及计算机可读存储介质。



背景技术:

在苹果公司开发的移动操作系统ios系统中开发app(application,应用程序)的过程中,当从数组中取值时,若取值的范围超出了数组的实际范围,则会出现nsrangeexception(越界异常)崩溃。如图1所示,一个存放3个对象的数组,3个对象各自有一个索引分别为0、1和2。当从数组取索引0、索引1或索引2对应的对象时,就会得到索引对应的对象,但是如果在数组中取索引3,就会出现nsrangeexception(越界异常),从而引发app的崩溃。



技术实现要素:

本发明提供了一种数据容错方法、设备及计算机可读存储介质,用以解决现有技术中的由于对app中的数组执行非法取值操作导致的app崩溃问题。

本发明采用的技术方案是,所述一种数据容错方法,包括:

当对任一数组执行取值操作时,获取所述取值操作对应的取值配置信息;

根据所述任一数组的预设数组配置信息,以及所述取值配置信息,判断所述取值操作是否合法;

在判定所述取值操作为不合法的情况下,返回设定值。

可选的,所述数组配置信息包括:所述任一数组的数组索引容量;所述取值配置信息包括:所述取值操作对应的索引值;

所述根据所述任一数组的预设数组配置信息,以及所述取值配置信息,判断所述取值操作是否合法,包括:

判断所述索引值是否超出所述数组索引容量;

若所述索引值超出所述数组索引容量,则判定所述取值操作为不合法;否则判定所述取值操作为合法。

可选的,所述数组配置信息包括:所述任一数组的数组容量;所述取值配置信息包括:所述取值操作对应的取值;

所述根据所述任一数组的预设数组配置信息,以及所述取值配置信息,判断所述取值操作是否合法,包括:

判断所述取值是否超出所述数组容量;

若所述取值超出所述数组容量,则判定所述取值操作为不合法;否则判定所述取值操作为合法。

可选的,所述当对任一数组执行取值操作时,获取所述取值操作对应的取值配置信息,包括:

通过运行时runtime应用程序编程接口设置监控模块;

当对任一数组执行取值操作时,通过所述监控模块获取所述取值操作对应的取值配置信息。

可选的,所述设定值为空值。

本发明还提供一种数据容错设备,所述数据容错设备包括处理器和存储器;

所述处理器用于执行存储器中存储的数据容错的程序,以实现以下步骤:

当对任一数组进行取值时,监测所述任一数组的取值配置信息;

所述处理器用于执行存储器中存储的数据容错的程序,以实现以下步骤:

当对任一数组执行取值操作时,获取所述取值操作对应的取值配置信息;

根据所述任一数组的预设数组配置信息,以及所述取值配置信息,判断所述取值操作是否合法;

在判定所述取值操作为不合法的情况下,返回设定值。

可选的,所述数组配置信息包括:所述任一数组的数组索引容量;所述取值配置信息包括:所述取值操作对应的索引值;

所述根据所述任一数组的预设数组配置信息,以及所述取值配置信息,判断所述取值操作是否合法,包括:

判断所述索引值是否超出所述数组索引容量;

若所述索引值超出所述数组索引容量,则判定所述取值操作为不合法;否则判定所述取值操作为合法。

可选的,所述数组配置信息包括:所述任一数组的数组容量;所述取值配置信息包括:所述取值操作对应的取值;

所述根据所述任一数组的预设数组配置信息,以及所述取值配置信息,判断所述取值操作是否合法,包括:

判断所述取值是否超出所述数组容量;

若所述取值超出所述数组容量,则判定所述取值操作为不合法;否则判定所述取值操作为合法。

可选的,所述当对任一数组执行取值操作时,获取所述取值操作对应的取值配置信息,包括:

通过运行时runtime应用程序编程接口设置监控模块;

当对任一数组执行取值操作时,通过所述监控模块获取所述取值操作对应的取值配置信息。

可选的,所述设定值为空值。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的数据容错方法的步骤。

采用上述技术方案,本发明至少具有下列优点:

本发明所述一种数据容错方法、设备及计算机可读存储介质,通过根据数组取值操作对应的取值配置信息,及数组的预设数组配置信息,判断数组取值操作是否合法,并在取值操作为不合法的情况下返回设定值,能够有效地提高app代码的容错率,避免app因取值操作不合法导致的app崩溃,有效提高了app的安全性和稳定性,提高了app的用户体验。

附图说明

图1为本发明背景技术中的数组组成示意图;

图2为本发明第一至第三实施例的数据容错方法流程图;

图3为本发明第四至第五实施例的数据容错方法流程图;

图4为本发明第六至第十实施例的数据容错设备组成结构示意图;

图5为本发明第十二实施例的数据容错方法流程图。

具体实施方式

为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。

本发明第一实施例,一种数据容错方法,如图2所示,包括以下具体步骤:

步骤s101,当对任一数组执行取值操作时,获取该取值操作对应的取值配置信息。

在本实施例中,该取值操作对应的取值配置信息包括但不限于:

该取值操作对应的索引值等信息。

在本实施例中,对获取该取值操作对应的取值配置信息的方式不做具体限定。

步骤s102,根据该数组的预设数组配置信息,以及取值配置信息,判断该取值操作是否合法。

在本实施例中,数组配置信息包括但不限于:

该数组的数组索引容量等信息。

可选的,根据该数组的预设数组配置信息,以及取值配置信息,判断取值操作是否合法的方式,包括:

判断该取值操作对应的索引值是否超出该数组的数组索引容量;

若该取值操作对应的索引值超出该数组的数组索引容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

步骤s103,在判定该取值操作为不合法的情况下,返回设定值。

可选的,步骤s103,还包括:

在判定该取值操作为合法的情况下,基于该取值操作对应的索引值,根据该数组的类型,返回该取值操作对应的取值。

本发明第一实施例所述的数据容错方法,通过根据数组取值操作对应的取值配置信息,及数组的预设数组配置信息,判断数组取值操作是否合法,并在取值操作为不合法的情况下返回设定值,能够有效地提高app代码的容错率,避免app因取值操作不合法导致的app崩溃,有效提高了app的安全性和稳定性,提高了app的用户体验。

本发明第二实施例,一种数据容错方法,如图2所示,包括以下具体步骤:

步骤s101,当对任一数组执行取值操作时,获取该取值操作对应的取值配置信息。

在本实施例中,该取值操作对应的取值配置信息包括但不限于:

该取值操作对应的取值等信息。

在本实施例中,对获取该取值操作对应的取值配置信息的方式不做具体限定。

步骤s102,根据该数组的预设数组配置信息,以及取值配置信息,判断该取值操作是否合法。

在本实施例中,数组配置信息包括但不限于:

该数组的数组容量等信息。

可选的,根据该数组的预设数组配置信息,以及取值配置信息,判断取值操作是否合法的方式,包括:

判断该取值操作对应的取值是否超出该数组的数组容量;

若该取值操作对应的取值超出该数组的数组容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

步骤s103,在判定该取值操作为不合法的情况下,返回设定值。

可选的,步骤s103,还包括:

在判定该取值操作为合法的情况下,基于该取值操作对应的索引值,根据该数组的类型,返回该取值操作对应的取值。

本发明第二实施例所述的数据容错方法,通过根据数组取值操作对应的取值配置信息,及数组的预设数组配置信息,判断数组取值操作是否合法,并在取值操作为不合法的情况下返回设定值,能够有效地提高app代码的容错率,避免app因取值操作不合法导致的app崩溃,有效提高了app的安全性和稳定性,提高了app的用户体验。

本发明第三实施例,一种数据容错方法,如图2所示,包括以下具体步骤:

步骤s101,当对任一数组执行取值操作时,获取该取值操作对应的取值配置信息。

在本实施例中,该取值操作对应的取值配置信息包括但不限于:

该取值操作对应的索引值,以及该取值操作对应的取值等信息。

在本实施例中,对获取该取值操作对应的取值配置信息的方式不做具体限定。

步骤s102,根据该数组的预设数组配置信息,以及取值配置信息,判断该取值操作是否合法。

在本实施例中,数组配置信息包括但不限于:

该数组的数组索引容量,以及该数组的数组容量等信息。

可选的,根据该数组的预设数组配置信息,以及取值配置信息,判断取值操作是否合法的方式,至少包括以下方式之一:

方式一,判断该取值操作对应的索引值是否超出该数组的数组索引容量;

若该取值操作对应的索引值超出该数组的数组索引容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

方式二,判断该取值操作对应的取值是否超出该数组的数组容量;

若该取值操作对应的取值超出该数组的数组容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

步骤s103,在判定该取值操作为不合法的情况下,返回设定值。

可选的,步骤s103,还包括:

在判定该取值操作为合法的情况下,基于该取值操作对应的索引值,根据该数组的类型,返回该取值操作对应的取值。

本发明第三实施例所述的数据容错方法,通过根据数组取值操作对应的取值配置信息,及数组的预设数组配置信息,判断数组取值操作是否合法,并在取值操作为不合法的情况下返回设定值,能够有效地提高app代码的容错率,避免app因取值操作不合法导致的app崩溃,有效提高了app的安全性和稳定性,提高了app的用户体验。

本发明第四实施例,一种数据容错方法,如图3所示,包括以下具体步骤:

步骤s401,通过runtime(运行时)应用程序编程接口设置监控模块。

其中,runtime是一套底层的c语言api,runtime为ios内部的核心之一。通过runtime可以动态的给类改变方法的具体实现。

步骤s402,当对任一数组执行取值操作时,通过监控模块获取该取值操作对应的取值配置信息。

在本实施例中,该取值操作对应的取值配置信息至少包括以下之一:

该取值操作对应的索引值,以及该取值操作对应的取值等信息。

在本实施例中,对获取该取值操作对应的取值配置信息的方式不做具体限定。

步骤s403,根据该数组的预设数组配置信息,以及取值配置信息,判断该取值操作是否合法。

在本实施例中,数组配置信息包括但不限于:

该数组的数组索引容量,以及该数组的数组容量等信息。

可选的,根据该数组的预设数组配置信息,以及取值配置信息,判断取值操作是否合法的方式,至少包括以下方式之一:

方式一,判断该取值操作对应的索引值是否超出该数组的数组索引容量;

若该取值操作对应的索引值超出该数组的数组索引容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

方式二,判断该取值操作对应的取值是否超出该数组的数组容量;

若该取值操作对应的取值超出该数组的数组容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

步骤s404,在判定该取值操作为不合法的情况下,返回设定值。

可选的,步骤s404,还包括:

在判定该取值操作为合法的情况下,基于该取值操作对应的索引值,根据该数组的类型,返回该取值操作对应的取值。

本发明第四实施例所述的数据容错方法,通过根据数组取值操作对应的取值配置信息,及数组的预设数组配置信息,判断数组取值操作是否合法,并在取值操作为不合法的情况下返回设定值,能够有效地提高app代码的容错率,避免app因取值操作不合法导致的app崩溃,有效提高了app的安全性和稳定性,提高了app的用户体验。

本发明第五实施例,一种数据容错方法,如图3所示,包括以下具体步骤:

步骤s401,通过runtime(运行时)应用程序编程接口设置监控模块。

其中,runtime是一套底层的c语言api,runtime为ios内部的核心之一。通过runtime可以动态的给类改变方法的具体实现。

步骤s402,当对任一数组执行取值操作时,通过监控模块获取该取值操作对应的取值配置信息。

在本实施例中,该取值操作对应的取值配置信息至少包括以下之一:

该取值操作对应的索引值,以及该取值操作对应的取值等信息。

在本实施例中,对获取该取值操作对应的取值配置信息的方式不做具体限定。

步骤s403,根据该数组的预设数组配置信息,以及取值配置信息,判断该取值操作是否合法。

在本实施例中,数组配置信息包括但不限于:

该数组的数组索引容量,以及该数组的数组容量等信息。

可选的,根据该数组的预设数组配置信息,以及取值配置信息,判断取值操作是否合法的方式,至少包括以下方式之一:

方式一,判断该取值操作对应的索引值是否超出该数组的数组索引容量;

若该取值操作对应的索引值超出该数组的数组索引容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

方式二,判断该取值操作对应的取值是否超出该数组的数组容量;

若该取值操作对应的取值超出该数组的数组容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

步骤s404,在判定该取值操作为不合法的情况下,返回设定值。

可选的,步骤s404,还包括:

在判定该取值操作为合法的情况下,基于该取值操作对应的索引值,根据该数组的类型,返回该取值操作对应的取值。

可选的,设定值为空值。

通过返回设定值,能够有效地避免app出现nsrangeexception崩溃,有效地提高了app的稳定性,有效的降低了app的故障率,提高了app的用户体验。

本发明第五实施例所述的数据容错方法,通过根据数组取值操作对应的取值配置信息,及数组的预设数组配置信息,判断数组取值操作是否合法,并在取值操作为不合法的情况下返回设定值,能够有效地提高app代码的容错率,避免app因取值操作不合法导致的app崩溃,有效提高了app的安全性和稳定性,提高了app的用户体验。

本发明第六实施例,一种数据容错设备,如图4所示,包括以下组成部分:

处理器501和存储器502。在本发明的一些实施例中,处理器501和存储器502可通过总线或者其它方式连接。

处理器501可以是通用处理器,例如中央处理器(centralprocessingunit,cpu),还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,asic),或者是被配置成实施本发明实施例的一个或多个集成电路。其中,存储器502用于存储所述处理器501的可执行指令;

存储器502,用于存储程序代码,并将该程序代码传输给处理器501。存储器502可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,ram);存储器502也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom)、快闪存储器(flashmemory)、硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器502还可以包括上述种类的存储器的组合。

其中,处理器501用于调用所述存储器502存储的程序代码管理代码,执行如下操作:

1)当对任一数组执行取值操作时,获取该取值操作对应的取值配置信息。

在本实施例中,该取值操作对应的取值配置信息包括但不限于:

该取值操作对应的索引值等信息。

在本实施例中,对获取该取值操作对应的取值配置信息的方式不做具体限定。

2)根据该数组的预设数组配置信息,以及取值配置信息,判断该取值操作是否合法。

在本实施例中,数组配置信息包括但不限于:

该数组的数组索引容量等信息。

可选的,根据该数组的预设数组配置信息,以及取值配置信息,判断取值操作是否合法的方式,包括:

判断该取值操作对应的索引值是否超出该数组的数组索引容量;

若该取值操作对应的索引值超出该数组的数组索引容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

3)在判定该取值操作为不合法的情况下,返回设定值。

可选的,在判断取值操作是否合法之后,还包括:

在判定该取值操作为合法的情况下,基于该取值操作对应的索引值,根据该数组的类型,返回该取值操作对应的取值。

本发明第六实施例所述的数据容错设备,通过根据数组取值操作对应的取值配置信息,及数组的预设数组配置信息,判断数组取值操作是否合法,并在取值操作为不合法的情况下返回设定值,能够有效地提高app代码的容错率,避免app因取值操作不合法导致的app崩溃,有效提高了app的安全性和稳定性,提高了app的用户体验。

本发明第七实施例,一种数据容错设备,如图4所示,包括以下组成部分:

处理器501和存储器502。在本发明的一些实施例中,处理器501和存储器502可通过总线或者其它方式连接。

处理器501可以是通用处理器,例如中央处理器(centralprocessingunit,cpu),还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,asic),或者是被配置成实施本发明实施例的一个或多个集成电路。其中,存储器502用于存储所述处理器501的可执行指令;

存储器502,用于存储程序代码,并将该程序代码传输给处理器501。存储器502可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,ram);存储器502也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom)、快闪存储器(flashmemory)、硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器502还可以包括上述种类的存储器的组合。

其中,处理器501用于调用所述存储器502存储的程序代码管理代码,执行如下操作:

1)当对任一数组执行取值操作时,获取该取值操作对应的取值配置信息。

在本实施例中,该取值操作对应的取值配置信息包括但不限于:

该取值操作对应的取值等信息。

在本实施例中,对获取该取值操作对应的取值配置信息的方式不做具体限定。

2)根据该数组的预设数组配置信息,以及取值配置信息,判断该取值操作是否合法。

在本实施例中,数组配置信息包括但不限于:

该数组的数组容量等信息。

可选的,根据该数组的预设数组配置信息,以及取值配置信息,判断取值操作是否合法的方式,包括:

判断该取值操作对应的取值是否超出该数组的数组容量;

若该取值操作对应的取值超出该数组的数组容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

3)在判定该取值操作为不合法的情况下,返回设定值。

可选的,在判断取值操作是否合法之后,还包括:

在判定该取值操作为合法的情况下,基于该取值操作对应的索引值,根据该数组的类型,返回该取值操作对应的取值。

本发明第七实施例所述的数据容错设备,通过根据数组取值操作对应的取值配置信息,及数组的预设数组配置信息,判断数组取值操作是否合法,并在取值操作为不合法的情况下返回设定值,能够有效地提高app代码的容错率,避免app因取值操作不合法导致的app崩溃,有效提高了app的安全性和稳定性,提高了app的用户体验。

本发明第八实施例,一种数据容错设备,如图4所示,包括以下组成部分:

处理器501和存储器502。在本发明的一些实施例中,处理器501和存储器502可通过总线或者其它方式连接。

处理器501可以是通用处理器,例如中央处理器(centralprocessingunit,cpu),还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,asic),或者是被配置成实施本发明实施例的一个或多个集成电路。其中,存储器502用于存储所述处理器501的可执行指令;

存储器502,用于存储程序代码,并将该程序代码传输给处理器501。存储器502可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,ram);存储器502也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom)、快闪存储器(flashmemory)、硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器502还可以包括上述种类的存储器的组合。

其中,处理器501用于调用所述存储器502存储的程序代码管理代码,执行如下操作:

1)当对任一数组执行取值操作时,获取该取值操作对应的取值配置信息。

在本实施例中,该取值操作对应的取值配置信息包括但不限于:

该取值操作对应的索引值,以及该取值操作对应的取值等信息。

在本实施例中,对获取该取值操作对应的取值配置信息的方式不做具体限定。

2)根据该数组的预设数组配置信息,以及取值配置信息,判断该取值操作是否合法。

在本实施例中,数组配置信息包括但不限于:

该数组的数组索引容量,以及该数组的数组容量等信息。

可选的,根据该数组的预设数组配置信息,以及取值配置信息,判断取值操作是否合法的方式,至少包括以下方式之一:

方式一,判断该取值操作对应的索引值是否超出该数组的数组索引容量;

若该取值操作对应的索引值超出该数组的数组索引容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

方式二,判断该取值操作对应的取值是否超出该数组的数组容量;

若该取值操作对应的取值超出该数组的数组容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

3)在判定该取值操作为不合法的情况下,返回设定值。

可选的,在判断取值操作是否合法之后,还包括:

在判定该取值操作为合法的情况下,基于该取值操作对应的索引值,根据该数组的类型,返回该取值操作对应的取值。

本发明第八实施例所述的数据容错设备,通过根据数组取值操作对应的取值配置信息,及数组的预设数组配置信息,判断数组取值操作是否合法,并在取值操作为不合法的情况下返回设定值,能够有效地提高app代码的容错率,避免app因取值操作不合法导致的app崩溃,有效提高了app的安全性和稳定性,提高了app的用户体验。

本发明第九实施例,一种数据容错设备,如图4所示,包括以下组成部分:

处理器501和存储器502。在本发明的一些实施例中,处理器501和存储器502可通过总线或者其它方式连接。

处理器501可以是通用处理器,例如中央处理器(centralprocessingunit,cpu),还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,asic),或者是被配置成实施本发明实施例的一个或多个集成电路。其中,存储器502用于存储所述处理器501的可执行指令;

存储器502,用于存储程序代码,并将该程序代码传输给处理器501。存储器502可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,ram);存储器502也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom)、快闪存储器(flashmemory)、硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器502还可以包括上述种类的存储器的组合。

其中,处理器501用于调用所述存储器502存储的程序代码管理代码,执行如下操作:

1)通过runtime(运行时)应用程序编程接口设置监控模块。

其中,runtime是一套底层的c语言api,runtime为ios内部的核心之一。通过runtime可以动态的给类改变方法的具体实现。

2)当对任一数组执行取值操作时,通过监控模块获取该取值操作对应的取值配置信息。

在本实施例中,该取值操作对应的取值配置信息至少包括以下之一:

该取值操作对应的索引值,以及该取值操作对应的取值等信息。

在本实施例中,对获取该取值操作对应的取值配置信息的方式不做具体限定。

3)根据该数组的预设数组配置信息,以及取值配置信息,判断该取值操作是否合法。

在本实施例中,数组配置信息包括但不限于:

该数组的数组索引容量,以及该数组的数组容量等信息。

可选的,根据该数组的预设数组配置信息,以及取值配置信息,判断取值操作是否合法的方式,至少包括以下方式之一:

方式一,判断该取值操作对应的索引值是否超出该数组的数组索引容量;

若该取值操作对应的索引值超出该数组的数组索引容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

方式二,判断该取值操作对应的取值是否超出该数组的数组容量;

若该取值操作对应的取值超出该数组的数组容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

4)在判定该取值操作为不合法的情况下,返回设定值。

可选的,在判断取值操作是否合法之后,还包括:

在判定该取值操作为合法的情况下,基于该取值操作对应的索引值,根据该数组的类型,返回该取值操作对应的取值。

本发明第九实施例所述的数据容错设备,通过根据数组取值操作对应的取值配置信息,及数组的预设数组配置信息,判断数组取值操作是否合法,并在取值操作为不合法的情况下返回设定值,能够有效地提高app代码的容错率,避免app因取值操作不合法导致的app崩溃,有效提高了app的安全性和稳定性,提高了app的用户体验。

本发明第十实施例,一种数据容错设备,如图4所示,包括以下组成部分:

处理器501和存储器502。在本发明的一些实施例中,处理器501和存储器502可通过总线或者其它方式连接。

处理器501可以是通用处理器,例如中央处理器(centralprocessingunit,cpu),还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,asic),或者是被配置成实施本发明实施例的一个或多个集成电路。其中,存储器502用于存储所述处理器501的可执行指令;

存储器502,用于存储程序代码,并将该程序代码传输给处理器501。存储器502可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,ram);存储器502也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom)、快闪存储器(flashmemory)、硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器502还可以包括上述种类的存储器的组合。

其中,处理器501用于调用所述存储器502存储的程序代码管理代码,执行如下操作:

1)通过runtime(运行时)应用程序编程接口设置监控模块。

其中,runtime是一套底层的c语言api,runtime为ios内部的核心之一。通过runtime可以动态的给类改变方法的具体实现。

2)当对任一数组执行取值操作时,通过监控模块获取该取值操作对应的取值配置信息。

在本实施例中,该取值操作对应的取值配置信息至少包括以下之一:

该取值操作对应的索引值,以及该取值操作对应的取值等信息。

在本实施例中,对获取该取值操作对应的取值配置信息的方式不做具体限定。

3)根据该数组的预设数组配置信息,以及取值配置信息,判断该取值操作是否合法。

在本实施例中,数组配置信息包括但不限于:

该数组的数组索引容量,以及该数组的数组容量等信息。

可选的,根据该数组的预设数组配置信息,以及取值配置信息,判断取值操作是否合法的方式,至少包括以下方式之一:

方式一,判断该取值操作对应的索引值是否超出该数组的数组索引容量;

若该取值操作对应的索引值超出该数组的数组索引容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

方式二,判断该取值操作对应的取值是否超出该数组的数组容量;

若该取值操作对应的取值超出该数组的数组容量,则判定该取值操作为不合法;否则判定该取值操作为合法。

4)在判定该取值操作为不合法的情况下,返回设定值。

可选的,在判断取值操作是否合法之后,还包括:

在判定该取值操作为合法的情况下,基于该取值操作对应的索引值,根据该数组的类型,返回该取值操作对应的取值。

可选的,设定值为空值。

通过返回设定值,能够有效地避免app出现nsrangeexception崩溃,有效地提高了app的稳定性,有效的降低了app的故障率,提高了app的用户体验。

本发明第十实施例所述的数据容错设备,通过根据数组取值操作对应的取值配置信息,及数组的预设数组配置信息,判断数组取值操作是否合法,并在取值操作为不合法的情况下返回设定值,能够有效地提高app代码的容错率,避免app因取值操作不合法导致的app崩溃,有效提高了app的安全性和稳定性,提高了app的用户体验。

本发明第十一实施例,一种计算机可读存储介质。

计算机存储介质可以是ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、移动硬盘、cd-rom或者本领域已知的任何其他形式的存储介质。

计算机可读存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现本发明第一实施例至本发明第五实施例中任一实施例中部分或全部步骤。

本发明第十一实施例中所述的一种计算机可读存储介质,通过根据数组取值操作对应的取值配置信息,及数组的预设数组配置信息,判断数组取值操作是否合法,并在取值操作为不合法的情况下返回设定值,能够有效地提高app代码的容错率,避免app因取值操作不合法导致的app崩溃,有效提高了app的安全性和稳定性,提高了app的用户体验。

本发明第十二实施例,本实施例是在上述实施例的基础上,以数据容错方法为例,结合附图5介绍一个本发明的应用实例。

步骤s1201,通过runtime(运行时)应用程序编程接口设置监控模块nsarray。

其中,runtime是一套底层的c语言api,runtime为ios内部的核心之一。通过runtime可以动态的给类改变方法的具体实现。

监控模块nsarray运行在类簇的模式下。

数组类包括但不限于:

nssingleobjectarrayi(容量为1的数组)、nsarray0(空数组)、nsarrayi(不可变的数组)和nsarraym(可变的数组)

从数组取值的方式包括但不限于:

(objecttype)objectatindex:(nsuinteger)index。

步骤s1202,设置数组的取值实现方式。

可选的,步骤s1202,包括:

获得监控模块nsarray取值方式objectatindex的参数描述;

使用参数描述更改nssingleobjectarrayi的取值的实现方式为nsarrayrangehold,并得到nssingleobjectarrayi的原始取值实现方式simp;

使用参数描述更改nsarrayi的取值的实现方式为nsarrayrangehold,并得到nsarrayi的原始取值实现方式iimp;

使用参数描述更改nsarray0的取值方法的实现方式为nsarrayrangehold,并得到nsarray0的原始取值实现方式zimp;

使用参数描述更改nsarraym的取值方法的实现方式为nsarrayrangehold,并得到nsarraym的原始取值实现方式mimp;

步骤s1203,当对任一数组取值时,通过nsarrayrangehold进行拦截。

可选的,步骤s1203,包括:

在nsarrayrangehold中获取数组obj和取值的索引index;

当索引index小于数组的容量count时,则判定取值无越界风险,根据数组obj的类型,调用在步骤s1202中保存下来的数组取值的实现方式,返回数组的取值。

其中,数组取值的实现方式,包括:

nssingleobjectarrayi的原始取值实现方式simp;

nsarrayi的原始取值实现方式iimp;

nsarray0的原始取值实现方式zimp;

nsarraym的原始取值实现方式mimp。

当索引index大于或等于数组的容量count时,则判定取值为越界行为,返回空值。

本发明第十二实施例中所述的数据容错方法,通过根据数组取值操作对应的取值配置信息,及数组的预设数组配置信息,判断数组取值操作是否合法,并在取值操作为不合法的情况下返回设定值,能够有效地提高app代码的容错率,避免app因取值操作不合法导致的app崩溃,有效提高了app的安全性和稳定性,提高了app的用户体验。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1