Javascript 在多个独立语句上尝试catch块
这样,如果一条语句生成错误,我希望保持执行流。 我不想让尽可能多的try-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 {
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) {
}
}