我在我的代码中使用了这个函数,并且我使用throw
来创建有意义的错误(而不是默默地失败)。但是,当我以这种方式构建我的功能时,如果我在调用defineSandbox()
时发生错误,它会停止整个脚本。在投掷JS后继续执行
//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(){...});
我想要的是如果一个调用失败,它会发出错误,但仍会尝试继续运行脚本。我如何构造这个代码,以便我可以实现这一目标?