شیئرنگ ٹیمپلیٹ حوالہ غلط ٹریک

مصنف:لاوی، تاریخ: 2020-01-28 20:39:09
ٹیگز:

استعمال کرنے کا طریقہ: سب سے پہلے اس ٹیمپلیٹ لائبریری کا حوالہ دیں ہر اسکرپٹ فائل میں شامل کریں $.fileLineMark ((main, 35) پہلا پیرامیٹر: فائل کا نام دوسرا پیرامیٹر: اس لائن کا کوڈ فائل میں لائن نمبر اور اس بات کو یقینی بناتا ہے کہ غلطیوں کا سراغ لگانے سے پہلے اس لائن کوڈ کو پھانسی دی جائے۔ آخر میں، پالیسی کوڈ میں شامل کریں main = $.tryfunc ((main) تاکہ یہ یقینی بنایا جا سکے کہ تمام کالز try کے ذریعے جائیں۔

جب پالیسی غلطیوں کی اطلاع دی جاتی ہے تو ، یہ خود بخود ایک سرخ لائن بناتا ہے جس میں اشارہ کیا جاتا ہے کہ فائل میں کون سی لائنیں ہیں۔

اصول: جے ایس کوڈ کو لوڈ کرنے کا طریقہ یہ ہے کہ تمام جے ایس کوڈ ، جس میں کلاس لائبریری بھی شامل ہے ، کو ایک بڑی فائل میں لوڈ کیا جائے۔ بڑی فائل میں ہر فائل کا مقام تلاش کریں ، اور آخری بار جب غلطی کی اطلاع دی جائے تو ، اس کا الٹا جواب دیں۔

img


var fileStartLine = []
$.fileLineMark = function(file, line) {
    try{a=a+1}catch(ex){
        var markline = parseInt(ex.stack.split('\n')[3].split('(__FILE__:')[1].split(')')[0])
        fileStartLine.push([file, markline-line])
        fileStartLine.sort(function(a, b){
            return b[1] - a[1]
        })
    }
}

$.tryfunc = function(func) {
    return function(a,b,c,d,e,f,g,h,i,j,k,l,m,n) {
        try {
            return func(a,b,c,d,e,f,g,h,i,j,k,l,m,n)
        } catch(ex) {
            if (ex.message == "execution timeout") {
                Log("忽略机器人停止指令")
                throw ex
                return
            }

            var line = parseInt(ex.stack.split('\n')[2].split('(__FILE__:')[1].split(')')[0])
            for (var ii = 0; ii < fileStartLine.length; ii++) {
                if (line > fileStartLine[ii][1]) {
                    Log("catch error at " + fileStartLine[ii][0] + ":" + (line-fileStartLine[ii][1])+"#ff0000")
                    break
                }
            }

            throw ex
        }
    }
}

function onTick() {

}

function main() {
    $.fileLineMark("main", 41)
    onTick = $.tryfunc(onTick)
    
    while(true){
        onTick()
        Sleep(1000)
    }
}


مزید

گھاسیہ دلچسپ ہے، دیکھو

گھاسیہ ممکن ہے، لیکن اس وقت اس پر غور نہیں کیا گیا تھا.

لاویہاہاہاہا، اس کے برعکس سوچیں کہ آپ نے اندر سے کیا کیا ہے- یہ بالکل درست نہیں ہے لیکن یہ مددگار ہے-