异常非处理:忽略异常而不尝试catch

时间:2015-02-13 19:19:35

标签: javascript exception-handling try-catch

这可能是一个愚蠢的问题,因为我不习惯使用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();
  ...
}

感谢您的回答!

1 个答案:

答案 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块,但是从调用者的角度来看会引发异常。