数据库异常捕获处理方法、装置和计算机设备制造方法及图纸

技术编号:27655564 阅读:104 留言:0更新日期:2021-03-12 14:17
本发明专利技术公开了一种数据库异常捕获处理方法、装置和计算机设备。其中,数据库异常捕获处理方法包括:封装数据库中的操作函数,并生成封装函数;当操作函数调用数据库时,利用封装函数判断是否发生异常;如果发生异常,则对操作函数进行相应的异常处理。本发明专利技术实施例的数据库异常捕获处理方法、装置和计算机设备,通过封装数据库中的操作函数,并生成封装函数,以及当操作函数调用数据库时,利用封装函数判断是否发生异常,如果发生异常,则对操作函数进行相应的异常处理,减少代码冗余量,逻辑清晰,便于代码编写和维护,保证数据唯一性和完整性。

【技术实现步骤摘要】
数据库异常捕获处理方法、装置和计算机设备
本专利技术涉及数据库
,尤其涉及一种数据库异常捕获处理方法、装置和计算机设备。
技术介绍
在大型的分布式业务系统中,Redis节点或客户端在调用接口函数建立与Redis数据库的连接时,接口函数不会检查该连接的可用性,即使连接不可用,代码层面也会正常运行。因此,Redis客户端如果发生异常,则会导致Redis数据库的存储服务不可用,从而堵塞整个系统业务逻辑的运行。目前,在每次调用接口函数时,除了执行业务逻辑本身的代码,还使用try/catch机制来捕获异常。但是,在合作开发的模式下,这样会重复执行部分业务逻辑,导致数据叠加,无法保证数据唯一性和完整性,代码臃肿,逻辑复杂。
技术实现思路
本专利技术的目的旨在至少在一定程度上解决上述的技术问题之一。为此,本专利技术的第一个目的在于提出一种数据库异常捕获处理方法,能够减少代码冗余量,逻辑清晰,便于代码编写和维护,保证数据唯一性和完整性。本专利技术的第二个目的在于提出一种数据库异常捕获处理装置。本专利技术的第三个目的在于提出一种计算机设备。本专利技术的第四个目的在于提出一种非临时性计算机可读存储介质。为了实现上述目的,本专利技术第一方面实施例提出一种数据库异常捕获处理方法,该方法包括:封装数据库中的操作函数,并生成封装函数;当所述操作函数调用所述数据库时,利用所述封装函数判断是否发生异常;如果发生异常,则对所述操作函数进行相应的异常处理。可选的,封装数据库中的操作函数,并生成封装函数,包括:定义装饰器函数;利用所述装饰器函数的函数名装饰所述操作函数。可选的,定义所述装饰器函数,包括:初始化所述装饰器函数;将所述操作函数的函数名及其对应的参数导入所述装饰器函数;定义所述装饰器函数的异常捕获操作。可选的,对所述操作函数进行相应的异常处理,包括:确定异常类型,并根据所述异常类型对所述操作函数进行相应的异常处理。可选的,所述异常类型包括数据库连接异常、数据格式错误、函数执行错误以及数据库写入错误中的至少一种。可选的,根据所述异常类型对所述操作函数进行相应的异常处理,包括:当所述异常类型为数据库连接异常时,重新建立与所述数据库的连接;或者当所述异常类型为数据格式错误时,输出错误日志;或者当所述异常类型为函数执行错误时,重新执行所述操作函数;或者当所述异常类型为数据库写入错误时,重新向所述数据库执行数据写入操作。可选的,在重新建立与所述数据库的连接之后,还包括:检测所述连接的可用性。本专利技术实施例的数据库异常捕获处理方法,通过封装数据库中的操作函数,并生成封装函数,以及当操作函数调用数据库时,利用封装函数判断是否发生异常,如果发生异常,则对操作函数进行相应的异常处理,减少代码冗余量,逻辑清晰,便于代码编写和维护,保证数据唯一性和完整性。为了实现上述目的,本专利技术第二方面实施例提出了一种数据库异常捕获处理装置,包括:封装模块,用于封装数据库中的操作函数,并生成封装函数;判断模块,用于当所述操作函数调用所述数据库时,利用所述封装函数判断是否发生异常;异常处理模块,用于如果发生异常,则对所述操作函数进行相应的异常处理。可选的,所述封装模块,用于:定义装饰器函数;利用所述装饰器函数的函数名装饰所述操作函数。可选的,所述封装模块,具体用于:初始化所述装饰器函数;将所述操作函数的函数名及其对应的参数导入所述装饰器函数;定义所述装饰器函数的异常捕获操作。可选的,所述异常处理模块,用于:确定异常类型,并根据所述异常类型对所述操作函数进行相应的异常处理。可选的,所述异常类型包括数据库连接异常、数据格式错误、函数执行错误以及数据库写入错误中的至少一种。可选的,所述异常处理模块,具体用于:当所述异常类型为数据库连接异常时,重新建立与所述数据库的连接;或者当所述异常类型为数据格式错误时,输出错误日志;或者当所述异常类型为函数执行错误时,重新执行所述操作函数;或者当所述异常类型为数据库写入错误时,重新向所述数据库执行数据写入操作。可选的,所述异常处理模块,还用于:检测所述连接的可用性。本专利技术实施例的数据库异常捕获处理装置,通过封装数据库中的操作函数,并生成封装函数,以及当操作函数调用数据库时,利用封装函数判断是否发生异常,如果发生异常,则对操作函数进行相应的异常处理,减少代码冗余量,逻辑清晰,便于代码编写和维护,保证数据唯一性和完整性。为了实现上述目的,本专利技术第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如第一方面实施例所述的数据库异常捕获处理方法。为了实现上述目的,本专利技术第四方面实施例还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如第一方面实施例所述的数据库异常捕获处理方法。本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明构成本专利技术的一部分的说明书附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是本专利技术一个实施例的数据库异常捕获处理方法的流程图;图2是本专利技术一个实施例的定义装饰器函数的流程图;图3是本专利技术一个实施例的数据库异常捕获处理装置的结构示意图。具体实施方式需要说明的是,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本专利技术。以下结合具体实施例对本专利技术作进一步详细描述,这些实施例不能理解为限制本专利技术所要求保护的范围。下面参考附图描述本专利技术实施例的数据库异常捕获处理方法、装置和计算机设备。图1是本专利技术一实施例的数据库异常捕获处理方法的流程图,如图1所示,该方法包括以下步骤:S1,封装数据库中的操作函数,并生成封装函数。首先,可先定义一个装饰器函数,然后利用该装饰器函数的函数名装饰操作函数,从而生成一个封装函数。具体地,如图2所示,定义装饰器函数可进一步包括以下步骤:S11,初始化装饰器函数。其中,初始化装饰函数可包括初始化服务器地址变量。S12,将操作函数的函数名及其对应的参数导入装饰器函数。S13,定义装饰器函数的异常捕获操作。举例来说,首先可先定义一个类ClassRedisClient(),初始化装饰器函数。然后,定义装饰器函数,defauto_catch(传入操作函数名func),defwrappe本文档来自技高网...

【技术保护点】
1.一种数据库异常捕获处理方法,其特征在于,包括:/n封装数据库中的操作函数,并生成封装函数;/n当所述操作函数调用所述数据库时,利用所述封装函数判断是否发生异常;/n如果发生异常,则对所述操作函数进行相应的异常处理。/n

【技术特征摘要】
1.一种数据库异常捕获处理方法,其特征在于,包括:
封装数据库中的操作函数,并生成封装函数;
当所述操作函数调用所述数据库时,利用所述封装函数判断是否发生异常;
如果发生异常,则对所述操作函数进行相应的异常处理。


2.如权利要求1所述的方法,其特征在于,封装数据库中的操作函数,并生成封装函数,包括:
定义装饰器函数;
利用所述装饰器函数的函数名装饰所述操作函数。


3.如权利要求2所述的方法,其特征在于,定义所述装饰器函数,包括:
初始化所述装饰器函数;
将所述操作函数的函数名及其对应的参数导入所述装饰器函数;
定义所述装饰器函数的异常捕获操作。


4.如权利要求1所述的方法,其特征在于,对所述操作函数进行相应的异常处理,包括:
确定异常类型,并根据所述异常类型对所述操作函数进行相应的异常处理。


5.如权利要求4所述的方法,其特征在于,所述异常类型包括数据库连接异常、数据格式错误、函数执行错误以及数据库写入错误中的至少一种。


6.如权利要求5所述的方法,其特征在于,根据所述异常类型对所述操作函数进行相应的异常处理,包括:
当所述异常类型为数据库连接异常时,重新建立与所述数据库的连接;或者
当所述异常类型为数据格式错误时,输出错误日志;或者
当所述异常类型为函数执行错误时,重新执行所述操作函数;或者
当所述异常类型为数据库写入错误时,重新向所述数据库执行数据写入操作。


7.如权利要求6所述的方法,其特征在于,在重新建立与所述数据库的连接之后,还包括:
检测所述连接的可用性。


8.一种数据库异常捕获处理装置,其特征在于,包括:
封装模块,用于封装数据库中的操作函数,并生成封装函数;
判断模块,用于当所述操作函数调用所述数据库时,利用所...

【专利技术属性】
技术研发人员:李登杰于文健
申请(专利权)人:曙光信息产业北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1