Javascript 在多个独立语句上尝试catch块

Javascript 在多个独立语句上尝试catch块,javascript,try-catch,Javascript,Try Catch,这样,如果一条语句生成错误,我希望保持执行流。 我不想让尽可能多的try-catch块成为语句 以下是一个例子: try { a = results['a'].data(); b = results['b'].data(); c = results['c'].data(); d = results['d'].data(); } catch (e) { } 在这种情况下,将从字典中检索数据,因此每当未定义键时,调用data()将生成异常 捕获哪个语句生成异常,

这样,如果一条语句生成错误,我希望保持执行流。 我不想让尽可能多的try-catch块成为语句

以下是一个例子:

try {
    a = results['a'].data();
    b = results['b'].data();
    c = results['c'].data();
    d = results['d'].data();

} catch (e) {

}
在这种情况下,将从字典中检索数据,因此每当未定义键时,调用data()将生成异常

捕获哪个语句生成异常,或者在每个语句后生成伪布尔值,并在最后一个块中处理其余语句,对我来说似乎是一个很大的负担

使用JavaScript作为语言。

尝试以下方法:

;(function(fu){
    a = fu(results,'a', null/*optional default value (for when is not exists)*/);
    b = fu(results,'b');
    c = fu(results,'c');
    d = fu(results,'d');
    //Other Codes...
})(function (r, n, def){return ((r[n]||{}).data||function(){return def;})();});
试试这个:

;(function(fu){
    a = fu(results,'a', null/*optional default value (for when is not exists)*/);
    b = fu(results,'b');
    c = fu(results,'c');
    d = fu(results,'d');
    //Other Codes...
})(function (r, n, def){return ((r[n]||{}).data||function(){return def;})();});

您应该编写一个包装函数来实现这一点。 例如,让我们将该函数命名为getData。 您的代码如下所示:

// Dummy data
var results = {
    "a": {
        "data": function() {
            return "Hello World";
        }
    }
};

a = getData(results['a'])
b = getData(results['b'])
c = getData(results['c'])
d = getData(results['d'])


function getData(result) {
    try {
        return result.data();
    } catch (e) {

    }
}

您应该编写一个包装函数来实现这一点。 例如,让我们将该函数命名为getData。 您的代码如下所示:

// Dummy data
var results = {
    "a": {
        "data": function() {
            return "Hello World";
        }
    }
};

a = getData(results['a'])
b = getData(results['b'])
c = getData(results['c'])
d = getData(results['d'])


function getData(result) {
    try {
        return result.data();
    } catch (e) {

    }
}