我在代码中有这个函数,我使用
throw
来创建有意义的错误(而不是默默失败)。
然而,当我以这种方式构建我的函数时,如果我用一个错误调用defineSandbox()
,它会停止整个脚本。//defineSandbox is in an object, for now i name "myObj"
var defineSandbox = function (sandboxName,SandboxDefinition) {
//validation
if(!is.validString(sandboxName)) {
throw statusMessages.sandbox.invalidName;
}
if(!is.validFunction (SandboxDefinition)) {
throw statusMessages.sandbox.invalidDefinition;
}
//...some more validation here
//...sandbox builder code if validation passes (code wasn't returned)
registered.sandboxes[sandboxName] = newSandbox;
};
//intentional error, non-string name
myObj.defineSandbox(false);
//...and so the rest of the script from here down is not executed
//i can't build this sandbox anymore
myObj.defineSandbox('mySandbox',function(){...});
我希望的是,如果一个调用失败了,它会输出一个错误,但仍然尝试继续运行脚本。如何构建这段代码,以便我可以实现这一点?