这可能是一个愚蠢的问题,因为我不习惯使用javascript。
我有一组指令,想要不间断地执行它们,而不使用try ... catch。例如,让我们考虑一下:
do_stuff_A();
do_stuff_B();
do_stuff_C();
...
如果 do_stuff_A()失败,我希望执行 do_stuff_B()等等,而不会中断,不执行此操作:
try { do_stuff_A(); }
catch { };
try { do_stuff_A(); }
catch { };
...
因为如果我这样做的话:
try {
do_stuff_A(); // if this fails
do_stuff_B(); // this won't be executed
do_stuff_C();
...
} catch {
// Never mind
}
是否有一个神奇的工具可以这样做:
ignore_exceptions {
do_stuff_A();
do_stuff_B();
do_stuff_C();
...
}
感谢您的回答!
答案 0 :(得分:0)
虽然它是bad practice to swallow exceptions,但我认为你有充分的理由。
你可以写一个包装函数来减少它的冗长:
function runAndIgnoreExceptions(f) {
try{
return f();
} catch(e){}
}
runAndIgnoreExceptions(do_stuff_A);
runAndIgnoreExceptions(do_stuff_B);
runAndIgnoreExceptions(do_stuff_C);
根据您的使用情况,您可能希望使用finally
- 块。
这样总是会执行finally块,但是从调用者的角度来看会引发异常。