Exception NON-Handling : 忽略没有try catch的异常
Exception NON-Handling : Ignoring exceptions without 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();
...
}
感谢您的回答!
虽然它是 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 块总是被执行,但从调用者的角度来看会引发异常。
这可能是一个愚蠢的问题,因为我真的不习惯使用 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();
...
}
感谢您的回答!
虽然它是 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 块总是被执行,但从调用者的角度来看会引发异常。