System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 日韩人妻无码一区二区三区久久99,无码视频一区二区三区在线观看,精品人无码一区二区三区
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    代碼遍歷異常檢測方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)制造方法及圖紙

    技術(shù)編號(hào):44069209 閱讀:1 留言:0更新日期:2025-01-17 16:06
    本發(fā)明專利技術(shù)涉及研發(fā)管理技術(shù)領(lǐng)域和金融科技領(lǐng)域,公開了一種代碼遍歷異常檢測方法,通過解析項(xiàng)目源碼文件夾中的Java文件,生成抽象語法樹。在語法樹中查找遍歷操作的StatementExpression節(jié)點(diǎn),并判斷其名稱是否以forEach或for開頭。確認(rèn)遍歷操作后,向上分析語法樹中的父節(jié)點(diǎn),形成父節(jié)點(diǎn)列表。進(jìn)一步分析父節(jié)點(diǎn),檢查是否包含條件判斷語句,并確定這些條件判斷中是否存在對(duì)數(shù)據(jù)對(duì)象的判空操作。如果未發(fā)現(xiàn)判空操作,標(biāo)記遍歷操作為異常,并生成對(duì)應(yīng)的異常報(bào)告。本發(fā)明專利技術(shù)可以減少開發(fā)階段對(duì)大量測試的依賴,提前檢測遍歷異常,避免運(yùn)行時(shí)的空指針異常,提高代碼的穩(wěn)定性和開發(fā)效率。

    【技術(shù)實(shí)現(xiàn)步驟摘要】

    本專利技術(shù)涉及研發(fā)管理和金融科技領(lǐng)域,尤其涉及一種代碼遍歷異常檢測方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)


    技術(shù)介紹

    1、在金融系統(tǒng)的開發(fā)過程中,金融數(shù)據(jù)結(jié)構(gòu)復(fù)雜,涉及多層次的業(yè)務(wù)邏輯和數(shù)據(jù)傳遞。現(xiàn)代軟件開發(fā)中通常采用數(shù)據(jù)分層領(lǐng)域模型,將金融系統(tǒng)中的數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)對(duì)象,如數(shù)據(jù)傳輸對(duì)象、數(shù)據(jù)訪問對(duì)象、業(yè)務(wù)對(duì)象、顯示層對(duì)象等。這些對(duì)象之間在進(jìn)行數(shù)據(jù)傳遞時(shí),金融開發(fā)人員為了提高開發(fā)效率,往往使用foreach或for循環(huán)對(duì)數(shù)據(jù)對(duì)象中的所有屬性進(jìn)行批量操作。

    2、然而,現(xiàn)有技術(shù)中,這種遍歷操作存在一些潛在問題,特別是在數(shù)據(jù)對(duì)象為空的情況下。由于對(duì)數(shù)據(jù)對(duì)象的foreach或for操作不會(huì)在編譯階段報(bào)錯(cuò),程序在運(yùn)行時(shí)可能出現(xiàn)異常(如空指針異常),這類問題通常在運(yùn)行階段難以發(fā)現(xiàn),只有通過大量的測試才能捕捉到。而金融系統(tǒng)對(duì)于準(zhǔn)確性和穩(wěn)定性的要求極高,任何程序異常都會(huì)導(dǎo)致業(yè)務(wù)流程中斷或數(shù)據(jù)錯(cuò)誤。

    3、但是,現(xiàn)有技術(shù)在處理這些遍歷操作時(shí)存在以下不足:

    4、依賴大量測試:為了避免這些遍歷異常,通常需要投入大量的測試人力和時(shí)間來檢查代碼中的潛在問題。這不僅增加了金融項(xiàng)目的開發(fā)成本,還對(duì)項(xiàng)目的進(jìn)度產(chǎn)生不利影響。

    5、測試覆蓋不足:即便進(jìn)行大量測試,也很難完全覆蓋所有遍歷操作中的潛在問題,特別是在復(fù)雜的數(shù)據(jù)結(jié)構(gòu)或特殊情況下,異常的遍歷問題可能會(huì)被遺漏。

    6、由于這些問題,現(xiàn)有的金融系統(tǒng)在代碼遍歷操作上存在一定的風(fēng)險(xiǎn),金融機(jī)構(gòu)需要依賴更為高效和精準(zhǔn)的代碼檢測工具來幫助開發(fā)者提前發(fā)現(xiàn)這些潛在的遍歷異常,以避免系統(tǒng)在運(yùn)行時(shí)出現(xiàn)不可預(yù)見的錯(cuò)誤。這些工具需要通過靜態(tài)分析技術(shù),在代碼編寫階段就能檢測出潛在的異常,減少測試負(fù)擔(dān)并提升系統(tǒng)的穩(wěn)定性和安全性。


    技術(shù)實(shí)現(xiàn)思路

    1、本專利技術(shù)的主要目的在于提供一種代碼遍歷異常檢測方法、裝置、設(shè)備及存儲(chǔ)介質(zhì),旨在解決現(xiàn)有技術(shù)無法有效檢測遍歷操作時(shí)數(shù)據(jù)對(duì)象為空,從而無法預(yù)防遍歷操作中潛在異常的技術(shù)問題。

    2、為實(shí)現(xiàn)上述目的,本專利技術(shù)提供一種代碼遍歷異常檢測方法,包括:

    3、獲取項(xiàng)目源碼文件夾并遍歷所述項(xiàng)目源碼文件夾,篩選出java文件,并儲(chǔ)存至java文件列表中;

    4、對(duì)所述java文件列表中的每個(gè)java文件進(jìn)行解析,生成對(duì)應(yīng)的抽象語法樹;

    5、在每個(gè)抽象語法樹中查找表示表達(dá)式操作的statementexpression節(jié)點(diǎn),判斷statementexpression節(jié)點(diǎn)的名稱屬性是否以foreach結(jié)尾或以for開頭;

    6、若是,確認(rèn)statementexpression節(jié)點(diǎn)為遍歷操作節(jié)點(diǎn),向上遍歷對(duì)應(yīng)的抽象語法樹,獲取所述遍歷操作節(jié)點(diǎn)的全部父節(jié)點(diǎn),生成父節(jié)點(diǎn)列表;

    7、遍歷所述父節(jié)點(diǎn)列表,判斷父節(jié)點(diǎn)是否包含條件判斷語句,并檢查條件判斷語句中是否包含對(duì)數(shù)據(jù)對(duì)象的判空操作;

    8、若在條件判斷語句中不包含對(duì)數(shù)據(jù)對(duì)象的判空操作,則確認(rèn)對(duì)應(yīng)的statementexpression節(jié)點(diǎn)存在數(shù)據(jù)對(duì)象遍歷異常,并生成異常報(bào)告。

    9、在一個(gè)實(shí)施例中,向上遍歷對(duì)應(yīng)的抽象語法樹,獲取所述遍歷操作節(jié)點(diǎn)的全部父節(jié)點(diǎn),生成父節(jié)點(diǎn)列表,包括:

    10、對(duì)所述遍歷操作節(jié)點(diǎn)的位置信息進(jìn)行標(biāo)記,記錄遍歷操作節(jié)點(diǎn)的文件名、行號(hào)和列號(hào),用于定位異常代碼位置;

    11、對(duì)所述遍歷操作節(jié)點(diǎn)與直接父節(jié)點(diǎn)之間的關(guān)聯(lián)關(guān)系進(jìn)行記錄,建立遍歷操作節(jié)點(diǎn)在上下文語法結(jié)構(gòu)中的層次關(guān)系;

    12、利用所述層次關(guān)系,在對(duì)應(yīng)的抽象語法樹中遞歸向上查找遍歷操作節(jié)點(diǎn)的所有父節(jié)點(diǎn),并標(biāo)記每個(gè)父節(jié)點(diǎn)的語法類型,所述語法類型用于識(shí)別條件判斷語句;

    13、將每個(gè)父節(jié)點(diǎn)按照語法結(jié)構(gòu)存儲(chǔ)到所述父節(jié)點(diǎn)列表中,生成層次化的父節(jié)點(diǎn)路徑。

    14、在一個(gè)實(shí)施例中,遍歷所述父節(jié)點(diǎn)列表,判斷父節(jié)點(diǎn)是否包含條件判斷語句,并檢查條件判斷語句中是否包含對(duì)數(shù)據(jù)對(duì)象的判空操作,包括:

    15、遍歷所述父節(jié)點(diǎn)列表,從父節(jié)點(diǎn)列表的第一個(gè)節(jié)點(diǎn)開始,依次處理每個(gè)父節(jié)點(diǎn);

    16、對(duì)每個(gè)父節(jié)點(diǎn)的語法類型進(jìn)行判斷,識(shí)別是否為條件判斷語句,所述條件判斷語句包括if語句、else?if語句和switch語句;

    17、對(duì)已識(shí)別的條件判斷語句進(jìn)行分析,檢查條件判斷表達(dá)式中是否包含對(duì)遍歷操作中的數(shù)據(jù)對(duì)象的!=null的判空檢查;

    18、若存在任意一個(gè)條件判斷語句未包含判空操作,則標(biāo)記對(duì)應(yīng)的遍歷操作節(jié)點(diǎn)為異常節(jié)點(diǎn)。

    19、在一個(gè)實(shí)施例中,生成異常報(bào)告,包括:

    20、生成異常報(bào)告,并列出標(biāo)記為異常的statementexpression節(jié)點(diǎn),所述異常報(bào)告包括異常節(jié)點(diǎn)的文件路徑、行號(hào)及列號(hào);

    21、基于所述異常報(bào)告生成修復(fù)建議,所述修復(fù)建議包括在異常節(jié)點(diǎn)之前添加!=null判空操作的代碼示例;

    22、將所述異常報(bào)告和修復(fù)建議發(fā)送至開發(fā)人員,通知開發(fā)人員需要處理的問題;

    23、在開發(fā)環(huán)境中通過高亮的方式標(biāo)記異常節(jié)點(diǎn),供開發(fā)人員定位問題代碼;

    24、在接收到自動(dòng)修復(fù)指令時(shí),根據(jù)所述修復(fù)建議在異常節(jié)點(diǎn)之前插入判空檢查代碼,并對(duì)插入的代碼進(jìn)行標(biāo)記。

    25、在一個(gè)實(shí)施例中,獲取項(xiàng)目源碼文件夾并遍歷所述項(xiàng)目源碼文件夾,篩選出java文件,并儲(chǔ)存至java文件列表中,包括:

    26、從項(xiàng)目根目錄中提取項(xiàng)目源碼文件夾,遞歸遍歷項(xiàng)目源碼文件夾內(nèi)的子文件夾,逐層處理每一個(gè)子文件夾和子文件夾包含的文件;

    27、在遍歷過程中,根據(jù)文件擴(kuò)展名、隱藏屬性和項(xiàng)目中的代碼文件類型,過濾掉隱藏文件、非代碼文件、構(gòu)建文件夾和測試文件夾;

    28、篩選擴(kuò)展名為.java的源代碼文件,并將篩選出的每個(gè)java文件路徑存儲(chǔ)到j(luò)ava文件列表中;

    29、使用文件路徑標(biāo)識(shí)符,將已處理的文件路徑和未處理的文件路徑分開,并在遍歷過程中記錄每個(gè)文件的處理狀態(tài),包括文件是否已被處理、文件處理時(shí)間和處理結(jié)果。

    30、在一個(gè)實(shí)施例中,對(duì)所述java文件列表中的每個(gè)java文件進(jìn)行解析,生成對(duì)應(yīng)的抽象語法樹,包括:

    31、對(duì)所述java文件進(jìn)行詞法分析,逐行讀取java文件中的源代碼,將所述源代碼分割為詞法單元,所述詞法單元包括關(guān)鍵字、標(biāo)識(shí)符、操作符和分隔符;

    32、基于所述詞法單元,使用語法分析器依次解析java文件中的源代碼,并按照java語言的語法結(jié)構(gòu)生成對(duì)應(yīng)的語法節(jié)點(diǎn);

    33、基于所述語法節(jié)點(diǎn)構(gòu)建與java文件相對(duì)應(yīng)的抽象語法樹,所述抽象語法樹由多個(gè)語法節(jié)點(diǎn)組成,每個(gè)語法節(jié)點(diǎn)表示java文件中的語法結(jié)構(gòu)元素。

    34、在一個(gè)實(shí)施例中,對(duì)所述java文件進(jìn)行詞法分析,逐行讀取java文件中的源代碼,包括:

    35、基于所述java文件列表中java文件的大小和歷史處理時(shí)間對(duì)java文件進(jìn)行分組,并將每組java文件分配至獨(dú)立線程進(jìn)行處理;

    36、基于jav本文檔來自技高網(wǎng)...

    【技術(shù)保護(hù)點(diǎn)】

    1.一種代碼遍歷異常檢測方法,其特征在于,包括以下步驟:

    2.如權(quán)利要求1所述的代碼遍歷異常檢測方法,其特征在于,向上遍歷對(duì)應(yīng)的抽象語法樹,獲取所述遍歷操作節(jié)點(diǎn)的全部父節(jié)點(diǎn),生成父節(jié)點(diǎn)列表,包括:

    3.如權(quán)利要求1所述的代碼遍歷異常檢測方法,其特征在于,遍歷所述父節(jié)點(diǎn)列表,判斷父節(jié)點(diǎn)是否包含條件判斷語句,并檢查條件判斷語句中是否包含對(duì)數(shù)據(jù)對(duì)象的判空操作,包括:

    4.如權(quán)利要求1所述的代碼遍歷異常檢測方法,其特征在于,生成異常報(bào)告,包括:

    5.如權(quán)利要求1中所述的代碼遍歷異常檢測方法,其特征在于,獲取項(xiàng)目源碼文件夾并遍歷所述項(xiàng)目源碼文件夾,篩選出java文件,并儲(chǔ)存至java文件列表中,包括:

    6.如權(quán)利要求1所述的代碼遍歷異常檢測方法,其特征在于,對(duì)所述java文件列表中的每個(gè)java文件進(jìn)行解析,生成對(duì)應(yīng)的抽象語法樹,包括:

    7.如權(quán)利要求6所述的代碼遍歷異常檢測方法,其特征在于,對(duì)所述Java文件進(jìn)行詞法分析,逐行讀取Java文件中的源代碼,包括:

    8.一種代碼遍歷異常檢測裝置,其特征在于,所述代碼遍歷異常檢測裝置包括:

    9.一種代碼遍歷異常檢測設(shè)備,其特征在于,所述代碼遍歷異常檢測設(shè)備包括存儲(chǔ)器、處理器以及存儲(chǔ)在所述存儲(chǔ)器上并可以在所述處理器上運(yùn)行的代碼遍歷異常檢測程序,所述代碼遍歷異常檢測程序被所述處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1-7中任一項(xiàng)所述的代碼遍歷異常檢測方法的步驟。

    10.一種計(jì)算機(jī)存儲(chǔ)介質(zhì),其特征在于,所述存儲(chǔ)介質(zhì)上存儲(chǔ)有代碼遍歷異常檢測程序,所述代碼遍歷異常檢測程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1-7中任一項(xiàng)所述的代碼遍歷異常檢測方法的步驟。

    ...

    【技術(shù)特征摘要】

    1.一種代碼遍歷異常檢測方法,其特征在于,包括以下步驟:

    2.如權(quán)利要求1所述的代碼遍歷異常檢測方法,其特征在于,向上遍歷對(duì)應(yīng)的抽象語法樹,獲取所述遍歷操作節(jié)點(diǎn)的全部父節(jié)點(diǎn),生成父節(jié)點(diǎn)列表,包括:

    3.如權(quán)利要求1所述的代碼遍歷異常檢測方法,其特征在于,遍歷所述父節(jié)點(diǎn)列表,判斷父節(jié)點(diǎn)是否包含條件判斷語句,并檢查條件判斷語句中是否包含對(duì)數(shù)據(jù)對(duì)象的判空操作,包括:

    4.如權(quán)利要求1所述的代碼遍歷異常檢測方法,其特征在于,生成異常報(bào)告,包括:

    5.如權(quán)利要求1中所述的代碼遍歷異常檢測方法,其特征在于,獲取項(xiàng)目源碼文件夾并遍歷所述項(xiàng)目源碼文件夾,篩選出java文件,并儲(chǔ)存至java文件列表中,包括:

    6.如權(quán)利要求1所述的代碼遍歷異常檢測方法,其特征在于,對(duì)所述java文件列表中的每...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:周小亮
    申請(qǐng)(專利權(quán))人:平安銀行股份有限公司
    類型:發(fā)明
    國別省市:

    網(wǎng)友詢問留言 已有0條評(píng)論
    • 還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。

    1
    主站蜘蛛池模板: 亚洲国产成人精品无码久久久久久综合| 久久久久久AV无码免费网站下载| 韩国精品一区二区三区无码视频| 免费播放美女一级毛片| 无码人妻一区二区三区一| 亚洲国产无套无码av电影| 亚洲性无码一区二区三区| 亚洲人成人无码网www国产| 亚洲精品无码成人片久久| 人妻无码久久中文字幕专区| 2021无码最新国产在线观看| 久久人妻无码中文字幕| 国产亚洲精久久久久久无码| 狠狠躁天天躁无码中文字幕图| 中文有码vs无码人妻| 精品无码国产AV一区二区三区| 亚洲精品无码久久久久A片苍井空| 2020无码专区人妻系列日韩| 亚洲国产精品成人精品无码区在线| 亚洲日韩乱码中文无码蜜桃臀网站| 粉嫩大学生无套内射无码卡视频| 中文人妻无码一区二区三区| 国产亚洲精久久久久久无码77777| 无码av最新无码av专区| 午夜无码性爽快影院6080| 18禁超污无遮挡无码免费网站| 国产精品无码无卡在线播放| 无码伊人66久久大杳蕉网站谷歌| 久久久久久无码国产精品中文字幕| 精品无码久久久久久国产| 国产精品亚洲一区二区无码| 久久久久久久人妻无码中文字幕爆| 亚洲人成无码网站久久99热国产| 国产精品第一区揄拍无码| 久久久久久无码国产精品中文字幕| 高清无码中文字幕在线观看视频| 国模吧无码一区二区三区| 国产精品99久久久精品无码| 日韩av无码成人无码免费| 国产av无码专区亚洲国产精品| 亚洲AV日韩AV永久无码色欲|