尝试Catch功能不返回值

时间:2018-01-20 12:38:22

标签: javascript

我正在开发一个项目,我们有一个自定义的Try Catch函数,我们将所有函数包装在其中。 Try Catch功能就是这个

function TryCatch(fxn) {
    try {
        //this is the function code that should be called
        fxn();
    } catch (err) {
        //an error occurred. attempt to log it back to the server
        TryLogError("", err, false);
    }
}

我们就像这样使用它

function NewAdministratorDataToSubmit() {
    TryCatch(function () {
        var admin = {
            administratorName: $("#txtNewAdmin").val(),
            administratorPassword: $("#txtPassword").val(),
            administratorEmail: $("#txtAdministratorEmail").val(),
            administratorRoleID: $("#AdminRoles").val(),
            LoginUserName: $("#txtNewAdminUserName").val()
        };
        return admin;
    });
}

但是,因为我们将它包裹起来,所以我们没有得到返回的值。

我试过这样做

function NewAdministratorDataToSubmit() {
    return {
            TryCatch(function () {
                var admin = {
                    administratorName: $("#txtNewAdmin").val(),
                    administratorPassword: $("#txtPassword").val(),
                    administratorEmail: $("#txtAdministratorEmail").val(),
                    administratorRoleID: $("#AdminRoles").val(),
                    LoginUserName: $("#txtNewAdminUserName").val()
                };
                return admin;
            });
        }
}

并抛出错误,例如 在传递的函数

  

标识符的关键字使用无效

并关闭

  

TryCatch是语法错误

所以我需要修复TryCatch函数以返回值,或者添加返回仅返回值的函数。但并非所有函数都返回值

TryCatch用于所有功能。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您缺少return声明。

function TryCatch(fxn) {
    try {
        return fxn(); // return the result of the function call
    } catch (err) {
        TryLogError("", err, false);
    }
}