我正在开发一个项目,我们有一个自定义的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用于所有功能。
有什么想法吗?
答案 0 :(得分:1)
您缺少return
声明。
function TryCatch(fxn) {
try {
return fxn(); // return the result of the function call
} catch (err) {
TryLogError("", err, false);
}
}