eslint/no-unsafe-finally 正确性
它做了什么
禁止在 finally 块中使用控制流语句。
为什么这是不好的?
在 finally 块执行完成之前,JavaScript 会暂停 try 和 catch 块中的控制流语句。
因此,当在 finally 块中使用 return、throw、break 或 continue 时,try 和 catch 块中的控制流语句会被覆盖。 这可能会导致开发者意想不到的行为。
示例
此规则的 错误 代码示例:
javascript
// 我们期望这个函数返回 1;
(() => {
try {
return 1; // 1 被返回但被暂停,直到 finally 块结束
} catch (err) {
return 2;
} finally {
return 3; // 3 在 1 之前被返回,这是我们未预期的
}
})();
// > 3如何使用
要通过配置文件或 CLI 启用 此规则,可以使用:
json
{
"rules": {
"no-unsafe-finally": "error"
}
}bash
oxlint --deny no-unsafe-finally