Let's say I have this code:
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();
Here is also the fiddle: /
What can I put inside my showError() function, that will kill any subsequent function calls? In this example, myFunctionThree(); should never run.
I know this is a simple example, but I'm trying to get my head around the module pattern, and in my module I have a lot of functions that delegate work, and modify variables. So if one function fails, or is given an illegal variable, I want everything to stop and show the user an error. Because if there was an error in myFunctionOne() for example, there is no point in continuing to execute any of the other code.
I guess, I'm looking for something like the php exit() function. Any advice about how to do this, or how I should do it differently would be greatly appreciated.
Let's say I have this code:
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();
Here is also the fiddle: http://jsfiddle/dzjk44Lr/
What can I put inside my showError() function, that will kill any subsequent function calls? In this example, myFunctionThree(); should never run.
I know this is a simple example, but I'm trying to get my head around the module pattern, and in my module I have a lot of functions that delegate work, and modify variables. So if one function fails, or is given an illegal variable, I want everything to stop and show the user an error. Because if there was an error in myFunctionOne() for example, there is no point in continuing to execute any of the other code.
I guess, I'm looking for something like the php exit() function. Any advice about how to do this, or how I should do it differently would be greatly appreciated.
Share Improve this question asked Aug 25, 2015 at 23:16 AmirAmir 4,8104 gold badges29 silver badges43 bronze badges 1-
You can't do something like php
exit()
because you're not going to shut-down the browser. This all sounds to me like you need an error handling design for your code rather than a throw your hands up in the error and just abort everything. You canthrow
an exception and that will stop the current thread of execution (up to any exception handler that might catch the exception), but is not always the best way to design code. – jfriend00 Commented Aug 25, 2015 at 23:35
2 Answers
Reset to default 3You can throw an error:
throw new Error("Error Var is larger than 3. Var is" + myVar);
You can use javascript throw statement.
According to Mozilla MDN
Execution of the current function will stop (the statements after throw won't be executed), and control will be passed to the first catch block in the call stack. If no catch block exists among caller functions, the program will terminate.
Example:
throw "An error ocurred."
You can also go pro and throw an error object like this:
throw new MyAppError("custom error str", 128);
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744920651a4601113.html
评论列表(0条)