如何在javascript中停止所有代码执行?

时间:2015-08-25 23:16:58

标签: javascript

假设我有这段代码:

var myVar = 0;


function myFunctionOne() {
    myVar = myVar + 2;
    if(myVar <= 3) {
        alert("all is good");
    } else {
        showError(myVar);
    }
}

function myFunctionTwo() {
    myVar = myVar + 2;
    if(myVar <= 3) {
        alert("all is good");
    } else {
        showError(myVar);
    }
}

function myFunctionThree() {
    //This should never run....
    myVar = myVar + 2;
    if(myVar <= 3) {
        alert("all is good");
    } else {
        showError(myVar);
    }
}

function showError(myVar) {
    alert("Error Var is larger than 3. Var is" + myVar);
    return false; 
//This doesn't seem to stop anything

}

myFunctionOne();
myFunctionTwo();
myFunctionThree();

这也是小提琴:http://jsfiddle.net/dzjk44Lr/

我可以在showError()函数中添加什么,这会杀死任何后续的函数调用?在这个例子中,myFunctionThree();永远不应该跑。

我知道这是一个简单的例子,但我试图了解模块模式,在我的模块中,我有许多委托工作和修改变量的函数。因此,如果一个函数失败,或者被赋予非法变量,我希望一切都停止并向用户显示错误。例如,如果myFunctionOne()中存在错误,则继续执行任何其他代码是没有意义的。

我想,我正在寻找类似php exit()函数的东西。 任何关于如何做到这一点的建议,或者我应该如何做到这一点将不胜感激。

2 个答案:

答案 0 :(得分:3)

您可以throw出错:

throw new Error("Error Var is larger than 3. Var is" + myVar);

答案 1 :(得分:1)

您可以使用javascript throw statement

根据Mozilla MDN

  

当前函数的执行将停止(抛出后的语句将被执行),并且控制将被传递给调用堆栈中的第一个catch块。如果调用函数之间不存在catch块,则程序将终止。

示例:

throw "An error ocurred."

你也可以去pro并抛出这样的错误对象:

throw new MyAppError("custom error str", 128);