JavaScript捕获内部服务器错误500

时间:2016-01-10 19:21:09

标签: javascript error-handling runtime-error try-catch internal-server-error

我目前有一个脚本,用于通过访问其配置的后端来远程重启“worker”对象。

我在谷歌浏览器的控制台中运行此脚本,因为我无法访问实际的代码库。当我在谷歌浏览器中运行脚本并且工作者#(见下文)确实存在时,脚本运行良好并且成功重启了工作者。

问题是,当脚本尝试重新启动不存在的工作程序,或者该函数超时时,脚本将停止运行,并且出现“500 Internal Server Error”。我希望脚本继续运行并重新启动我提供给脚本的其他工作人员,尽管出现此错误。

我尝试在脚本的几个不同部分之前和之后添加try {} catch(e){}但是没有成功。有什么办法我可以尝试重写这个代码或任何其他方法,我可以用来忽略这个内部服务器错误,让脚本继续运行?任何建议都将不胜感激。

//Run Script via console in Google Chrome via worker page

    var workerIds = [*ALL WORKER IDS ENTERED HERE COMMA SEPERATED*]

    var WorkerSetUp = company.module("Configuation").WorkerSetUp;

    function restartWorkersRecur(){

     if(workerIds.length > 0) {
       var wid = workerIds.pop();
       console.log("Going to restart: " + wid);
       window.setTimeout(function(){
           restartWorkerRecur(wid);
           }, 5000);
        }
     else{
        console.log("Done");
        }
    }

    function restartWorkerRecur(wid){
        var wmModel = new WorkerSetUp;
        wmModel.id = wid;
        wmModel.fetch({success: function(model){
            if(!model.get("KillFlag")){
                   model.set("KillFlag", true);
                model.save([], {success: function(model){
                    model.set("KillFlag", false);
                    window.setTimeout(function(){
                        model.save([], {success: function(model){
                            console.log("Finished restarting: " + model.id);
                            restartWorkersRecur();
                        }});                   
                    }, 1000);
                }});
            }
        }});
    }

    restartWorkersRecur();

*同样,我没有直接访问代码库。我确实有特殊授权,但允许我拉出工作人员ID,然后通过谷歌Chrome重新启动它们。我显然已经改变了一些变量名称。事实上,当工作者存在时,该脚本确实很有用。我只是希望它继续运行,如果工人没有。如果我能提供任何其他信息,请告诉我,任何帮助将不胜感激。重复我也已经尝试过使用基本的try和catch语句而没有运气。

0 个答案:

没有答案