執(zhí)行所述目標(biāo)函數(shù)中包含的catch語(yǔ)句,catch語(yǔ)句在自動(dòng)執(zhí)行后可以自動(dòng)捕獲出現(xiàn)運(yùn)行異常的目標(biāo)函數(shù)的異常詳細(xì)信息。
[0076]例如,下述代碼為所述第一腳本文件中,添加了 try/catch語(yǔ)句后的目標(biāo)函數(shù)funct1n a ():
[0077]funct1n a () {
[0078]try {
[0079]var b =’ test,;
[0080]doSomething (b);
[0081]} catch (e) {
[0082]errorLog.send ({
[0083]msg: e.message I I e.descript1n,
[0084]path: ’ test, js’,//第一腳本文件的路徑信息
[0085]In:1//第一腳本文件中該目標(biāo)函數(shù)的行號(hào)
[0086]})
[0087]}
[0088]}
[0089]本發(fā)明實(shí)施例中,在獲得所述第二腳本文件后,對(duì)所述第二腳本文件進(jìn)行混淆壓縮處理,以生成第三腳本文件,生成的所述第三腳本文件用于在網(wǎng)絡(luò)上運(yùn)行。因此,本發(fā)明實(shí)施例中,是在混淆壓縮處理之前,為目標(biāo)函數(shù)配置異常捕獲語(yǔ)句,即在原始腳本文件中為目標(biāo)函數(shù)配置異常捕獲語(yǔ)句,可以使得當(dāng)?shù)谌_本文件在網(wǎng)絡(luò)上運(yùn)行時(shí),所述目標(biāo)函數(shù)若出現(xiàn)運(yùn)行異常,可以自動(dòng)執(zhí)行所述異常捕獲語(yǔ)句,以捕獲所述目標(biāo)函數(shù)相對(duì)于所述第一腳本文件,即原始腳本文件的異常詳細(xì)信息,直接定位到原始腳本文件。
[0090]需要說(shuō)明的是,對(duì)所述第二腳本文件進(jìn)行混淆壓縮處理可以包括對(duì)所述第二腳本文件進(jìn)行壓縮處理和混淆處理。其中,所述壓縮處理可以包括但不限于:刪除第二腳本文件中的中的所有注釋、跳格符號(hào)、換行符號(hào)及無(wú)用的空格等,從而實(shí)現(xiàn)壓縮第二腳本文件的大小。所述混淆處理可以包括但不限于:對(duì)所述第二腳本文件進(jìn)行編碼,編碼過(guò)程中,將第二腳本文件中的函數(shù)的變量和函數(shù)的名稱(chēng)改為毫無(wú)意義的名稱(chēng),以防止他人窺視和竊取腳本文件的源代碼。
[0091]可選地,在本發(fā)明實(shí)施例的一個(gè)可能的實(shí)現(xiàn)方式中,在獲得所述第三腳本文件后,可以將所述第三腳本文件用于網(wǎng)絡(luò)上運(yùn)行。所述第三腳本文件在網(wǎng)絡(luò)上運(yùn)行時(shí),若所述第三腳本文件中的目標(biāo)函數(shù)出現(xiàn)運(yùn)行異常,執(zhí)行所述異常捕獲語(yǔ)句,以獲取異常詳細(xì)信息。
[0092]在一個(gè)具體的實(shí)現(xiàn)過(guò)程中,所述異常詳細(xì)信息可以包括但不限于:出現(xiàn)運(yùn)行異常的目標(biāo)函數(shù)在所述第一腳本文件中的開(kāi)始行號(hào)、結(jié)束行號(hào)、所述第一腳本文件的文件名和異常描述信息??梢岳斫獾氖?,所述異常詳細(xì)信息是出現(xiàn)運(yùn)行異常的目標(biāo)函數(shù)相對(duì)于所述第一腳本文件的異常詳細(xì)信息。
[0093]可以理解的是,在所述第三腳本文件在網(wǎng)絡(luò)上運(yùn)行的過(guò)程中,若所述目標(biāo)函數(shù)出現(xiàn)運(yùn)行異常,所述目標(biāo)函數(shù)中配置的異常捕獲語(yǔ)句可以自動(dòng)執(zhí)行,進(jìn)行異常詳細(xì)信息的自動(dòng)捕獲并輸出,因此,通過(guò)配置異常捕獲語(yǔ)句可以實(shí)現(xiàn)函數(shù)在出現(xiàn)運(yùn)行異常后,可以獲得函數(shù)的異常詳細(xì)信息,從而根據(jù)異常詳細(xì)信息,實(shí)現(xiàn)在腳本文件中對(duì)運(yùn)行異常的函數(shù)進(jìn)行定位,然后修改函數(shù),以消除運(yùn)行異常問(wèn)題。
[0094]需要說(shuō)明的是,本發(fā)明實(shí)施例中,由于是在腳本文件進(jìn)行壓縮混淆之前就為函數(shù)進(jìn)行異常捕獲語(yǔ)句的配置,因此,在運(yùn)行壓縮混淆之后的腳本文件時(shí),執(zhí)行的異常捕獲語(yǔ)句捕獲的異常詳細(xì)信息就是目標(biāo)函數(shù)針對(duì)壓縮混淆之前的原始腳本文件的異常詳細(xì)信息。因此,本發(fā)明實(shí)施例中,通過(guò)在壓縮混淆之前為目標(biāo)函數(shù)配置異常捕獲語(yǔ)句,來(lái)實(shí)現(xiàn)在網(wǎng)絡(luò)上運(yùn)行壓縮混淆后的腳本文件的過(guò)程中,捕獲出現(xiàn)運(yùn)行異常的函數(shù)的異常詳細(xì)信息,從而可以直接獲得函數(shù)相對(duì)于原始腳本文件的異常詳細(xì)信息。與現(xiàn)有技術(shù)中,先獲得函數(shù)相對(duì)于在網(wǎng)絡(luò)上運(yùn)行的腳本文件的異常詳細(xì)信息,再將函數(shù)相對(duì)于在網(wǎng)絡(luò)上運(yùn)行的腳本文件的異常詳細(xì)信息映射成函數(shù)相對(duì)于原始腳本文件的異常詳細(xì)信息的技術(shù)方案相比,本發(fā)明實(shí)施例降低了出現(xiàn)運(yùn)行異常的函數(shù)相對(duì)于原始腳本文件的異常詳細(xì)信息的獲取效率和獲取成本。
[0095]可選地,在本發(fā)明實(shí)施例的一個(gè)可能的實(shí)現(xiàn)方式中,在獲得所述異常詳細(xì)信息后,可以進(jìn)一步將所述異常詳細(xì)信息發(fā)送給服務(wù)器,以便于所述服務(wù)器將所述異常詳細(xì)信息推送給用戶。這樣,用戶就可以獲知出現(xiàn)運(yùn)行異常的目標(biāo)函數(shù)在第一腳本文件中的位置,進(jìn)而可以在第一腳本文件中找到該目標(biāo)函數(shù),并對(duì)該目標(biāo)函數(shù)進(jìn)行修改,以消除所述目標(biāo)函數(shù)的運(yùn)行異常問(wèn)題。
[0096]本發(fā)明實(shí)施例進(jìn)一步給出實(shí)現(xiàn)上述方法實(shí)施例中各步驟及方法的裝置實(shí)施例。
[0097]請(qǐng)參考圖2,其為本發(fā)明實(shí)施例所提供的腳本文件的處理系統(tǒng)的結(jié)構(gòu)示意圖。如圖所示,該系統(tǒng)包括:
[0098]語(yǔ)句配置單元21,用于在第一腳本文件中,為所述第一腳本文件中的目標(biāo)函數(shù)配置異常捕獲語(yǔ)句,以生成第二腳本文件;
[0099]腳本處理單元22,用于對(duì)所述第二腳本文件進(jìn)行混淆壓縮處理,以生成第三腳本文件,所述第三腳本文件用于在網(wǎng)絡(luò)上運(yùn)行。
[0100]在一個(gè)具體的實(shí)現(xiàn)過(guò)程中,所述語(yǔ)句配置單元21,具體用于:
[0101]獲取所述第一腳本文件中的目標(biāo)函數(shù)的詳細(xì)信息;
[0102]根據(jù)所述目標(biāo)函數(shù)的詳細(xì)信息,在所述第一腳本文件中,為所述目標(biāo)函數(shù)配置異常捕獲語(yǔ)句;
[0103]其中,所述目標(biāo)函數(shù)的詳細(xì)信息包括:所述目標(biāo)函數(shù)在所述第一腳本文件中的開(kāi)始行號(hào)和所述目標(biāo)函數(shù)在所述第一腳本文件中的結(jié)束行號(hào)。
[0104]可選地,在本發(fā)明實(shí)施例的一個(gè)可能的實(shí)現(xiàn)方式中,所述系統(tǒng)還包括:
[0105]腳本解析單元23,用于對(duì)所述第一腳本文件進(jìn)行結(jié)構(gòu)解析,以獲得所述第一腳本文件中候選函數(shù)的詳細(xì)信息;
[0106]函數(shù)篩選單元24,用于從所述候選函數(shù)中獲得所述目標(biāo)函數(shù)。
[0107]在一個(gè)具體的實(shí)現(xiàn)過(guò)程中,所述候選函數(shù)的詳細(xì)信息包括候選函數(shù)的名稱(chēng);所述函數(shù)篩選單元24,具體用于:
[0108]獲取需要配置異常捕獲語(yǔ)句的候選函數(shù)的名稱(chēng);
[0109]從所述候選函數(shù)中獲得與需要配置異常捕獲語(yǔ)句的候選函數(shù)的名稱(chēng)相匹配的候選函數(shù),以作為所述目標(biāo)函數(shù)。
[0110]可選地,在本發(fā)明實(shí)施例的一個(gè)可能的實(shí)現(xiàn)方式中,所述系統(tǒng)還包括:
[0111]異常捕獲單元25,用于所述第三腳本文件在網(wǎng)絡(luò)上運(yùn)行時(shí),若所述第三腳本文件中的目標(biāo)函數(shù)出現(xiàn)運(yùn)行異常,執(zhí)行所述異常捕獲語(yǔ)句,以獲取異常詳細(xì)信息;
[0112]所述異常詳細(xì)信息包括:出現(xiàn)運(yùn)行異常的目標(biāo)函數(shù)在所述第一腳本文件中的開(kāi)始行號(hào)、結(jié)束行號(hào)、所述第一腳本文件的文件名和異常描述信息。
[0113]可選地,在本發(fā)明實(shí)施例的一個(gè)可能的實(shí)現(xiàn)方式中,所述系統(tǒng)還包括:
[0114]異常輸出單元26,用于將所述異常詳細(xì)信息發(fā)送給服務(wù)器,以便于所述服務(wù)器將所述異常詳細(xì)信息推送給用戶。
[0115]由于本實(shí)施例中的各單元能夠執(zhí)行圖1所示的方法,本實(shí)施例未詳細(xì)描述的部分,可參考對(duì)圖1的相關(guān)說(shuō)明。
[0116]本發(fā)明實(shí)施例的技術(shù)方案具有以下有益效果:
[0117]本發(fā)明實(shí)施例中,通過(guò)在第一腳本文件中,為所述第一腳本文件中的目標(biāo)函數(shù)配置異常捕獲語(yǔ)句,以生成第二腳本文件;從而,對(duì)所述第二腳本文件進(jìn)行混淆壓縮處理,以生成第三腳本文件,所述第三腳本文件用于在網(wǎng)絡(luò)上運(yùn)行。
[0118]本發(fā)明實(shí)施例提供的技術(shù)方案,由于是在腳本文件進(jìn)行壓縮混淆之前就為函數(shù)進(jìn)行異常捕獲語(yǔ)句的配置,因此,在運(yùn)行壓縮混淆之后的腳本文件時(shí),執(zhí)行的異常捕獲語(yǔ)句捕獲的異常詳細(xì)信息就是目標(biāo)函數(shù)針對(duì)壓縮