我在我的代碼中使用了這個函數,並且我使用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(){...});
我想要的是如果一個調用失敗,它會發出錯誤,但仍會嘗試繼續運行腳本。我如何構造這個代碼,以便我可以實現這一目標?