Я решил посмотреть на проблему под другим углом.
Мне удалось определить способ, позволяющий тщательно разрешить шаблон кода, запрошенный при частичной обработке необработанного объекта ошибки, указанного другим комментатором.
код можно увидеть @ http://jsfiddle.net/Abyssoft/RC7Nw/4/
try: catch помещается в цикл for, что позволяет грациозно проваливаться. будучи в состоянии перебрать все необходимые функции. когда требуется явная обработка ошибок, используется дополнительный массив функций. в случае ошибки и функционального массива с обработчиками ошибок элемент не является функцией, ошибка выводится на консоль.
В соответствии с требованиями stackoverflow здесь встроенный код [отредактирован, чтобы сделать JSLint-совместимым (удалить пробелы для подтверждения), улучшить читаемость]
function func1() {"use strict"; throw "I don't return anything"; }
function func2() {"use strict"; return 123; }
function func3() {"use strict"; throw "I don't return anything"; }
// ctr = Code to Run <array>, values = values <array>,
// eh = error code can be blank.
// ctr and params should match 1 <-> 1
// Data validation not done here simple POC
function testAll(ctr, values, eh) {
"use strict";
var cb; // cb = code block counter
for (cb in ctr) {
if (ctr.hasOwnProperty(cb)) {
try {
return ctr[cb](values[cb]);
} catch (e) {
if (typeof eh[cb] === "function") {
eh[cb](e);
} else {
//error intentionally/accidentially ignored
console.log(e);
}
}
}
}
return false;
}
window.alert(testAll([func1, func2, func3], [], []));
1013 *