eslint/no-unsafe-finally 正确性
它做什么
禁止在 finally 块中使用控制流语句
为什么这样不好?
JavaScript 挂起 try 和 catch 块的控制流语句,直到 finally 块的执行完成。因此,当在 finally 中使用 return、throw、break 或 continue 时,try 和 catch 中的控制流语句会被覆盖,这被认为是意外行为。
示例
javascript
// We expect this function to return 1;
(() => {
try {
return 1; // 1 is returned but suspended until finally block ends
} catch (err) {
return 2;
} finally {
return 3; // 3 is returned before 1, which we did not expect
}
})();
// > 3