在这个javascript代码f.init()
中控制整个程序流程:
var f = function() {
return {
init: function(var1) {
try {
f.f1(1)
} catch (e) {
alert(e);
}
try {
f.f2(1)
} catch (e) {
alert(e);
}
// ...
// more try-catch blocks
// ...
},
f1: function() {
throw Error('f1 called');
},
f2: function() {
throw Error('f2 called');
}
};
}();
f.init();
如何只在一个try-catch块中集中所有异常管理?像这样:
var f = function() {
return {
init: function(var1) {
f.f1(1) // this cut the control flow if thrown some error
f.f2(1) // so this is not called
},
f1: function() {
throw Error('f1 called');
},
f2: function() {
throw Error('f2 called');
}
};
}();
try {
f.init();
} catch (e) {
alert(e);
}
之前的代码在抛出一些错误后切断了流程。
答案 0 :(得分:4)
你不能。抛出错误后,程序流程就会中断。
答案 1 :(得分:0)
你做不到。但是有一个处理多重捕获的技巧:
try{
try{
firstTrial();
}
catch(e1){
secondTrial();
}
}catch(e2){
thirdTrial();
}