例如,如果一条语句产生错误,我希望保持执行流程。 我不想像语句那样制作很多try catch块。
这是一个示例:
try {
a = results['a'].data();
b = results['b'].data();
c = results['c'].data();
d = results['d'].data();
} catch (e) {
}
在这种情况下,将从字典中检索数据,因此,每当未定义键时,调用data()都会生成异常。
赶上哪个语句会产生异常,或者在每个语句之后添加虚拟布尔值,然后在最后一个块中处理其余的语句,这对我来说是一个很大的负担。
使用JavaScript作为语言。
答案 0 :(得分:1)
尝试一下:
;(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;})();});
答案 1 :(得分:0)
您应该编写一个包装函数来执行此操作。 例如,让该函数命名为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) {
}
}