CN116048995A - 实现异常信息配置化的方法、系统、介质、设备及终端 - Google Patents

实现异常信息配置化的方法、系统、介质、设备及终端 Download PDF

Info

Publication number
CN116048995A
CN116048995A CN202310063844.XA CN202310063844A CN116048995A CN 116048995 A CN116048995 A CN 116048995A CN 202310063844 A CN202310063844 A CN 202310063844A CN 116048995 A CN116048995 A CN 116048995A
Authority
CN
China
Prior art keywords
exception
abnormal
code
information
definition
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
CN202310063844.XA
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.)
Digital China Financial Software Co ltd
Original Assignee
Digital China Financial Software 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 Digital China Financial Software Co ltd filed Critical Digital China Financial Software Co ltd
Priority to CN202310063844.XA priority Critical patent/CN116048995A/zh
Publication of CN116048995A publication Critical patent/CN116048995A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3628Software debugging of optimised code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明属于异常体系化技术领域,公开了一种实现异常信息配置化的方法、系统、介质、设备及终端,获取代码坐标;依据代码坐标获取异常定义;判断是否存在异常定义,若存在异常定义,则创建异常信息;若无异常定义,则获取缺省异常定义并创建异常信息,进而实现异常信息配置化。本发明降低创建异常的复杂度,使得开发人员仅通过异常工具,快速抛出符合规范且便于后期维护的异常,无需纠结异常码是否冲突以及使用混乱的问题。本发明的异常工具类根据异常定义要素,快速映射异常定义信息,并根据异常类型创建相应异常,其中还用到JVM的栈帧技术,用来快速锁定代码行数,将其做为异常定义的要素之一,解决传统的定义异常码冲突以及混乱的问题。

Description

实现异常信息配置化的方法、系统、介质、设备及终端
技术领域
本发明属于异常体系化技术领域,尤其涉及一种实现异常信息配置化的方法、系统、介质、设备及终端。
背景技术
目前,业务系统中最常见的异常信息的维护方式就是通过异常码定义配置文件来完成,由开发人员自行在配置文件中维护异常信息,并在特定业务场景下完成异常建立。
首先没有体系化的异常定义与管理机制,且异常码的定义无法保证全局唯一,这就导致开发人员可以不定义异常码直接抛出通用异常,从而提高系统的维护成本,无法根据异常反馈快速锁定问题关键。而且在配置文件定义异常码,在多个开发并行的情况下,极易导致代码冲突,降低了工作效率。
且异常码被硬编码在代码中,当异常码调整后,需要同步调整代码。尤其系统在上线后,发现异常码不对,也无法及时调整。
基于上述情况如何能约束开发建立有效的异常,避免硬编码带来的调整困难,避免冲突太多而降低工作效率,成为了系统异常建立的一大痛点。
通过上述分析,现有技术存在的问题及缺陷为:
(1)现有业务系统中异常信息的维护方式没有体系化的异常定义与管理机制,且异常码的定义无法保证全局唯一,导致开发人员可以不定义异常码直接抛出通用异常,提高系统的维护成本,无法根据异常反馈快速锁定问题关键。
(2)现有业务系统中异常信息的维护方式在配置文件定义异常码,在多个开发并行的情况下,极易导致代码冲突,降低了工作效率。
(3)异常码被硬编码在代码中,当异常码调整后,需要同步调整代码;尤其是系统在上线后,即使发现异常码不对,也无法及时调整。
发明内容
针对现有技术存在的问题,本发明提供了一种实现异常信息配置化的方法、系统、介质、设备及终端,尤其涉及一种基于代码特征实现异常信息配置化的方法、系统、介质、设备及终端。
本发明是这样实现的,一种实现异常信息配置化的方法,实现异常信息配置化的方法包括以下步骤:
步骤一,获取代码坐标;
步骤二,依据代码坐标获取异常定义;
步骤三,判断是否存在异常定义,若存在异常定义,则创建异常信息;
步骤四,若无异常定义,则获取缺省异常定义并创建异常信息。
进一步,步骤一中的获取代码坐标是获取当前代码特征,代码特征包括类、方法名、代码行以及文件名;其中,当前代码特征的获取方法具体包括:
对当前代码文件采用静态分析方法,使用反编译工具进行反汇编分析,确定当前代码文件的敏感点;敏感点包括敏感函数调用、数组敏感操作和指针敏感操作;其中,敏感函数包括库函数或API函数,数组敏感操作包括对数组元素的访问或赋值,指针敏感操作包括对指针的访问或赋值;
对当前代码文件的敏感点进行优化处理,获得每个敏感点的初始敏感变量;追踪初始敏感变量的数据流,获取其他敏感变量,得到与敏感变量语义相关的可执行路径集合,并为每条路径分配动态分析节点;
通过动态分析工具,使用自动单步调试方法进行动态分析,使程序按照静态分析获取的可执行路径的控制流顺序执行,并获取代码API调用关联;
将当前代码的动态分析节点输入目标学习模型并计算目标学习模型的卷积层中每个通道上的梯度值;根据可执行路径集合和梯度值计算当前代码文件的热力图数据,确定待处理代码文件对整个代码文件的贡献分值;
将获得的可执行路径集合按源代码文件中的顺序进行排列,并根据对API调用关联进行分析,根据待处理代码文件对整个代码文件的贡献分值确定包含源代码敏感点特征信息的当前代码特征;
创建异常信息是通过异常工具类调用异常创建方法依据当前代码特征获取异常定义并创建异常信息。
进一步,采用以下公式计算待处理代码文件对整个代码文件的贡献分值:
Figure BDA0004073636820000031
式中,seqi表示第i个待处理代码,Id表示D个代码文件中第d个待处理代码文件是否包含seqi,其中,Id=1时,第d个待处理代码文件包含seqi,Id=0时,第d个待处理代码文件不包含seqi;freqd表示seqi出现在第d个待处理代码文件中的次数,si表示第i个待处理代码seqi对应的贡献得分。
进一步,步骤二中,通过异常工具类调用异常创建方法依据当前代码特征获取异常定义并创建异常信息,具体包括:
获取待检测的代码文件并对待检测的代码文件运行进行监测,当代码运行异常时确定异常代码;对代码文件中的异常代码进行词法分析,检测异常代码中的异常词法,并基于异常词法构建单向链表;
基于单向链表对异常代码进行语法语义分析,确定异常代码中的异常语法和异常语义;通过异常工具类调用异常创建方法,根据当前代码特征、异常词法、异常语法和异常语义,获取当前代码的异常定义并创建异常信息;
其中,异常工具类是根据异常码通过异常定义配置文件中获取对应的异常信息,并抛出异常的方式,无需指定异常码;通过代码特征获取异常定义,同时支持缺省的异常定义,应对未知的异常场景,创建异常信息。
进一步,步骤二中的异常定义包括:
类名,表示创建异常的所属类名;
方法名,表示创建异常的所属方法名;
代码行,表示创建异常的代码行数;
异常类型,表示创建异常的类型;
异常代码,表示异常信息的对应业务代码;
异常消息,表示异常的具体说明,用于支持异常参数传递。
进一步,代码行是通过JVM的栈帧技术,从栈帧中获取代码行数;异常类型包括参数类异常、业务数据异常、数据库异常以及框架处理异常;
异常代码规则如下:①前两位表示系统模块,包括核算引擎;②中间两块表示功能块,包括核算引擎中的分录生成;③后两位表示功能点,包括分录生成中的获取分录模板;如果不需要细化到功能点,则后两位设为特定值;
异常参数采用数组形式,在异常消息配置时支持配置占位符,由异常工具类按照下标从异常参数中获取参数数据。
本发明的另一目的在于提供一种应用所述实现异常信息配置化的方法的实现异常信息配置化的系统,实现异常信息配置化的系统包括:
代码特征提取模块,用于采用静态分析方法获取当前代码特征;
异常创建模块,用于通过异常工具类调用异常创建方法;
异常定义模块,用于利用异常创建方法依据当前代码特征获取异常定义;
异常信息创建模块,用于判断是否存在异常定义,若存在异常定义,则创建异常信息;若无异常定义,则获取缺省异常定义并创建异常信息。
本发明的另一目的在于提供一种计算机设备,计算机设备包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行所述实现异常信息配置化的方法的步骤。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行所述实现异常信息配置化的方法的步骤。
本发明的另一目的在于提供一种信息数据处理终端,信息数据处理终端用于实现所述实现异常信息配置化的系统。
结合上述的技术方案和解决的技术问题,本发明所要保护的技术方案所具备的优点及积极效果为:
第一,针对上述现有技术存在的技术问题以及解决该问题的难度,紧密结合本发明的所要保护的技术方案以及研发过程中结果和数据等,详细、深刻地分析本发明技术方案如何解决的技术问题,解决问题之后带来的一些具备创造性的技术效果。具体描述如下:
本发明提供了一种实现异常信息配置化的方法,基于代码特征来完成异常信息配置化。本发明提出异常信息配置化,无需硬编码,开发人员无需烦恼异常码如何定义,仅根据代码特征完成业务系统在任意场景下完成异常定义以及建议的方案。本发明旨在建立完善的异常体系,并将其融入日常研发工作中,并能让开发自觉遵守异常规范,不会出现异常信息混乱及冲突的现象。
(1)异常定义:为了方便开发人员快速高效的创建异常,全新的异常定义机制必不可少,此种机制避免了开发人员手动定义异常码,并对其硬编码。异常工具通过异常定义中的要素,动态锁定异常信息,并创建异常。
(2)异常类型:针对不同异常类型,创建各自的异常基类,异常工具根据异常类型创建异常,这对异常原因分析提供了强有力的帮助。
(3)异常代码|异常消息:根据业务系统来规范异常代码定义,当有异常时,首先通过异常代码锁定异常的业务场景,在根据异常消息,定位异常原因将会更加迅速且高效。
本发明提供异常工具类,通过异常工具类,开发人员可以直接再任意异常场景下调用异常创建的方法,由该方法依据当前代码特征来获取异常定义,并创建异常信息。关于异常工具类,摒弃了以往需要指定异常码,并根据异常码通过异常定义配置文件中获取对应的异常信息,并抛出异常的方式。新的异常工具类最大的改变就是无需指定异常码,这就避免了手动定义异常码而导致冲突以及混乱的风险,它通过代码特征(类、方法名、代码行、文件名)获取异常定义,同时支持缺省的异常定义,应对未知的异常场景,最终创建异常信息。
第二,把技术方案看做一个整体或者从产品的角度,本发明所要保护的技术方案具备的技术效果和优点,具体描述如下:
本发明旨在降低创建异常的复杂度,使得开发人员仅通过异常工具,快速抛出符合规范且便于后期维护的异常,无需纠结异常码是否冲突以及使用混乱的问题。异常工具类根据异常定义要素,快速映射异常定义信息,并根据异常类型创建相应异常,其中还用到JVM的栈帧技术,用来快速锁定代码行数,将其做为异常定义的要素之一,解决了传统的定义异常码冲突以及混乱的问题。
通过本发明的异常信息配置化处理彻底摆脱了传统异常处理机制,降低异常定义工作量,提高工作效率;硬编码的减少对代码的维护工作也提供了便利,包括当系统上线后发现的异常信息有误,亦可通过异常定义配置快速修正。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的实现异常信息配置化的方法流程图;
图2是本发明实施例提供的实现异常信息配置化的方法原理图;
图3是本发明实施例提供的代码坐标与异常定义映射的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种实现异常信息配置化的方法、系统、介质、设备及终端,下面结合附图对本发明作详细的描述。
一、解释说明实施例。为了使本领域技术人员充分了解本发明如何具体实现,该部分是对权利要求技术方案进行展开说明的解释说明实施例。
如图1和图2所示,本发明实施例提供的实现异常信息配置化的方法包括以下步骤:
S101,获取代码坐标;
S102,依据代码坐标获取异常定义;
S103,判断是否存在异常定义,若存在异常定义,则创建异常信息;
S104,若无异常定义,则获取缺省异常定义并创建异常信息。
本发明实施例提供的步骤S101中的获取代码坐标是获取当前代码特征,代码特征包括类、方法名、代码行以及文件名;
其中,当前代码特征的获取方法具体包括:
对当前代码文件采用静态分析方法,使用反编译工具进行反汇编分析,确定当前代码文件的敏感点;敏感点包括敏感函数调用、数组敏感操作和指针敏感操作;其中,敏感函数包括库函数或API函数,数组敏感操作包括对数组元素的访问或赋值,指针敏感操作包括对指针的访问或赋值;
对当前代码文件的敏感点进行优化处理,获得每个敏感点的初始敏感变量;追踪初始敏感变量的数据流,获取其他敏感变量,得到与敏感变量语义相关的可执行路径集合,并为每条路径分配动态分析节点;
通过动态分析工具,使用自动单步调试方法进行动态分析,使程序按照静态分析获取的可执行路径的控制流顺序执行,并获取代码API调用关联;
将当前代码的动态分析节点输入目标学习模型并计算目标学习模型的卷积层中每个通道上的梯度值;根据可执行路径集合和梯度值计算当前代码文件的热力图数据,确定待处理代码文件对整个代码文件的贡献分值;
将获得的可执行路径集合按源代码文件中的顺序进行排列,并根据对API调用关联进行分析,根据待处理代码文件对整个代码文件的贡献分值确定包含源代码敏感点特征信息的当前代码特征;
创建异常信息是通过异常工具类调用异常创建方法依据当前代码特征获取异常定义并创建异常信息。
本发明实施例采用以下公式计算待处理代码文件对整个代码文件贡献分值:
Figure BDA0004073636820000081
式中,seqi表示第i个待处理代码,Id表示D个代码文件中第d个待处理代码文件是否包含seqi,其中,Id=1时,第d个待处理代码文件包含seqi,Id=0时,第d个待处理代码文件不包含seqi;freqd表示seqi出现在第d个待处理代码文件中的次数,si表示第i个待处理代码seqi对应的贡献得分。
本发明实施例提供的步骤S102中,通过异常工具类调用异常创建方法依据当前代码特征获取异常定义并创建异常信息,具体包括:
获取待检测的代码文件并对待检测的代码文件运行进行监测,当代码运行异常时确定异常代码;对代码文件中的异常代码进行词法分析,检测异常代码中的异常词法,并基于异常词法构建单向链表;
基于单向链表对异常代码进行语法语义分析,确定异常代码中的异常语法和异常语义;通过异常工具类调用异常创建方法,根据当前代码特征、异常词法、异常语法和异常语义,获取当前代码的异常定义并创建异常信息;
其中,异常工具类是根据异常码通过异常定义配置文件中获取对应的异常信息,并抛出异常的方式,无需指定异常码;通过代码特征获取异常定义,同时支持缺省的异常定义,应对未知的异常场景,创建异常信息。
关于异常定义,本发明提出如下要素:
※类名:创建异常的所属类名;
※方法名:创建异常的所属方法名;
※代码行:创建异常的代码行数;
※异常类型:创建异常的类型,如参数类异常(可再细分)、业务数据异常、数据库异常、框架处理异常等。
※异常代码:异常信息的对应业务代码,规则如下:
①前两位表示系统模块,如:核算引擎;
②中间两块表示功能块,如:核算引擎中的分录生成;
③后两位表示功能点,如:分录生成中的获取分录模板;如果不需要细化到功能点,可以后两位设为特定值,如:00;
※异常消息:异常的具体说明,需支持异常参数传递,异常参数采用数组形式,在异常消息配置时,支持配置占位符,由异常工具类按照下标从异常参数中获取参数数据。
如图3所示,根据上述要素,开发人员维护异常定义表,系统根据需要动态创建异常信息。关于代码行,通过JVM的栈帧技术,从栈帧中获取代码行数。
本发明旨在建立完善的异常体系,并将其融入日常研发工作中,并能让开发自觉遵守异常规范,不会出现异常信息混乱及冲突的现象。
异常定义:为了方便开发人员快速高效的创建异常,全新的异常定义机制必不可少,此种机制避免了开发人员手动定义异常码,并对其硬编码。异常工具通过异常定义中的要素,动态锁定异常信息,并创建异常。
异常类型:针对不同异常类型,创建各自的异常基类,异常工具根据异常类型创建异常,这对异常原因分析提供了强有力的帮助。
异常代码|异常消息:根据业务系统来规范异常代码定义,当有异常时,首先通过异常代码锁定异常的业务场景,在根据异常消息,定位异常原因将会更加迅速且高效。
二、应用实施例。为了证明本发明的技术方案的创造性和技术价值,该部分是对权利要求技术方案进行具体产品上或相关技术上的应用实施例。
将本发明应用实施例提供的实现异常信息配置化的方法应用于实现异常信息配置化的系统,该系统包括:
代码特征提取模块,用于采用静态分析方法获取当前代码特征;
异常创建模块,用于通过异常工具类调用异常创建方法;
异常定义模块,用于利用异常创建方法依据当前代码特征获取异常定义;
异常信息创建模块,用于判断是否存在异常定义,若存在异常定义,则创建异常信息;若无异常定义,则获取缺省异常定义并创建异常信息。
将本发明应用实施例提供的实现异常信息配置化的方法应用于计算机设备,计算机设备包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行所述实现异常信息配置化的方法的步骤。
将本发明应用实施例提供的实现异常信息配置化的方法应用于计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行所述实现异常信息配置化的方法的步骤。
将本发明应用实施例提供的实现异常信息配置化的系统应用于信息数据处理终端,信息数据处理终端用于实现所述实现异常信息配置化的系统。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种实现异常信息配置化的方法,其特征在于,实现异常信息配置化的方法包括以下步骤:
步骤一,获取代码坐标;
步骤二,依据代码坐标获取异常定义;
步骤三,判断是否存在异常定义,若存在异常定义,则创建异常信息;
步骤四,若无异常定义,则获取缺省异常定义并创建异常信息。
2.如权利要求1所述实现异常信息配置化的方法,其特征在于,步骤一中的获取代码坐标是获取当前代码特征,代码特征包括类、方法名、代码行以及文件名;其中,当前代码特征的获取方法具体包括:
对当前代码文件采用静态分析方法,使用反编译工具进行反汇编分析,确定当前代码文件的敏感点;敏感点包括敏感函数调用、数组敏感操作和指针敏感操作;其中,敏感函数包括库函数或API函数,数组敏感操作包括对数组元素的访问或赋值,指针敏感操作包括对指针的访问或赋值;
对当前代码文件的敏感点进行优化处理,获得每个敏感点的初始敏感变量;追踪初始敏感变量的数据流,获取其他敏感变量,得到与敏感变量语义相关的可执行路径集合,并为每条路径分配动态分析节点;
通过动态分析工具,使用自动单步调试方法进行动态分析,使程序按照静态分析获取的可执行路径的控制流顺序执行,并获取代码API调用关联;
将当前代码的动态分析节点输入目标学习模型并计算目标学习模型的卷积层中每个通道上的梯度值;根据可执行路径集合和梯度值计算当前代码文件的热力图数据,确定待处理代码文件对整个代码文件的贡献分值;
将获得的可执行路径集合按源代码文件中的顺序进行排列,并根据对API调用关联进行分析,根据待处理代码文件对整个代码文件的贡献分值确定包含源代码敏感点特征信息的当前代码特征;
创建异常信息是通过异常工具类调用异常创建方法依据当前代码特征获取异常定义并创建异常信息。
3.如权利要求2所述实现异常信息配置化的方法,其特征在于,采用以下公式计算待处理代码文件对整个代码文件的贡献分值:
Figure FDA0004073636810000021
式中,seqi表示第i个待处理代码,Id表示D个代码文件中第d个待处理代码文件是否包含seqi,其中,Id=1时,第d个待处理代码文件包含seqi,Id=0时,第d个待处理代码文件不包含seqi;freqd表示seqi出现在第d个待处理代码文件中的次数,si表示第i个待处理代码seqi对应的贡献得分。
4.如权利要求1所述实现异常信息配置化的方法,其特征在于,步骤二中,通过异常工具类调用异常创建方法依据当前代码特征获取异常定义并创建异常信息,具体包括:
获取待检测的代码文件并对待检测的代码文件运行进行监测,当代码运行异常时确定异常代码;对代码文件中的异常代码进行词法分析,检测异常代码中的异常词法,并基于异常词法构建单向链表;
基于单向链表对异常代码进行语法语义分析,确定异常代码中的异常语法和异常语义;通过异常工具类调用异常创建方法,根据当前代码特征、异常词法、异常语法和异常语义,获取当前代码的异常定义并创建异常信息;
其中,异常工具类是根据异常码通过异常定义配置文件中获取对应的异常信息,并抛出异常的方式,无需指定异常码;通过代码特征获取异常定义,同时支持缺省的异常定义,应对未知的异常场景,创建异常信息。
5.如权利要求1所述实现异常信息配置化的方法,其特征在于,步骤二中的异常定义包括:
类名,表示创建异常的所属类名;
方法名,表示创建异常的所属方法名;
代码行,表示创建异常的代码行数;
异常类型,表示创建异常的类型;
异常代码,表示异常信息的对应业务代码;
异常消息,表示异常的具体说明,用于支持异常参数传递。
6.如权利要求5所述实现异常信息配置化的方法,其特征在于,代码行是通过JVM的栈帧技术,从栈帧中获取代码行数;异常类型包括参数类异常、业务数据异常、数据库异常以及框架处理异常;
异常代码规则如下:①前两位表示系统模块,包括核算引擎;②中间两块表示功能块,包括核算引擎中的分录生成;③后两位表示功能点,包括分录生成中的获取分录模板;如果不需要细化到功能点,则后两位设为特定值;
异常参数采用数组形式,在异常消息配置时支持配置占位符,由异常工具类按照下标从异常参数中获取参数数据。
7.一种应用如权利要求1~6任意一项所述实现异常信息配置化的方法的实现异常信息配置化的系统,其特征在于,实现异常信息配置化的系统包括:
代码特征提取模块,用于采用静态分析方法获取当前代码特征;
异常创建模块,用于通过异常工具类调用异常创建方法;
异常定义模块,用于利用异常创建方法依据当前代码特征获取异常定义;
异常信息创建模块,用于判断是否存在异常定义,若存在异常定义,则创建异常信息;若无异常定义,则获取缺省异常定义并创建异常信息。
8.一种计算机设备,其特征在于,计算机设备包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行如权利要求1~6任意一项所述实现异常信息配置化的方法的步骤。
9.一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行如权利要求1~6任意一项所述实现异常信息配置化的方法的步骤。
10.一种信息数据处理终端,其特征在于,信息数据处理终端用于实现如权利要求7所述实现异常信息配置化的系统。
CN202310063844.XA 2023-01-12 2023-01-12 实现异常信息配置化的方法、系统、介质、设备及终端 Pending CN116048995A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310063844.XA CN116048995A (zh) 2023-01-12 2023-01-12 实现异常信息配置化的方法、系统、介质、设备及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310063844.XA CN116048995A (zh) 2023-01-12 2023-01-12 实现异常信息配置化的方法、系统、介质、设备及终端

Publications (1)

Publication Number Publication Date
CN116048995A true CN116048995A (zh) 2023-05-02

Family

ID=86114478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310063844.XA Pending CN116048995A (zh) 2023-01-12 2023-01-12 实现异常信息配置化的方法、系统、介质、设备及终端

Country Status (1)

Country Link
CN (1) CN116048995A (zh)

Similar Documents

Publication Publication Date Title
US8719791B1 (en) Display of aggregated stack traces in a source code viewer
US7536678B2 (en) System and method for determining the possibility of adverse effect arising from a code change in a computer program
CN112100072B (zh) 应用程序代码的静态检测方法、装置、设备及介质
CN111158741B (zh) 监控业务模块对第三方类库依赖关系变化的方法及装置
CN111399853A (zh) 机器学习模型与自定义算子的模板化部署方法
CN111104335A (zh) 一种基于多层次分析的c语言缺陷检测方法及装置
US20230315416A1 (en) Code translation method and apparatus, and device
CN111324781A (zh) 一种数据分析方法、装置及设备
CN116610568A (zh) 一种识别代码的依赖关系的方法、装置、设备及介质
CN115599359A (zh) 一种代码生成方法、装置、设备及介质
CN117370767B (zh) 基于大数据的用户信息评估方法及系统
US9395977B2 (en) Locating program code units after software refactoring
CN111143390A (zh) 更新元数据的方法及装置
CN113987044A (zh) 资产数据的导入处理方法、装置及电子设备
US9396239B2 (en) Compiling method, storage medium and compiling apparatus
CN116661758B (zh) 一种优化日志框架配置的方法、装置、电子设备及介质
CN116432185B (zh) 一种异常检测方法、装置、可读存储介质及电子设备
CN111488144A (zh) 一种数据处理方法以及设备
CN116048995A (zh) 实现异常信息配置化的方法、系统、介质、设备及终端
CN110764745A (zh) 变量的传输和收集方法、装置及计算机可读存储介质
CN114996758A (zh) 一种数据脱敏方法、装置及电子设备
US11144290B2 (en) Method and apparatus for enabling autonomous acceleration of dataflow AI applications
CN113377648A (zh) 软件系统诊断方法、装置、电子设备及计算机可读介质
CN112035342B (zh) 一种识别代码缺陷的方法及装置
US20080307395A1 (en) Providing Registration of a Communication

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