eslint/no-throw-literal Pedantic
作用
禁止抛出字面量或非 Error 对象作为异常。
WARNING
此规则已被弃用,请改用 typescript/only-throw-error。 与 Javascript 版本相比,typescript 规则更可靠,因为它的误报更少,并且能捕获更多情况。
为什么这不好?
通常认为,只抛出 Error 对象本身,或者抛出以 Error 对象为基类的用户自定义异常对象,才是良好实践。Error 对象的根本优势在于,它们会自动记录自己被构建和产生的位置。
示例
以下是此规则的错误代码示例:
js
throw "error";
throw 0;
throw undefined;
throw null;
var err = new Error();
throw "an " + err;
// err 被重写为一个字符串字面量
var err = new Error();
throw `${err}`;以下是此规则的正确代码示例:
js
throw new Error();
throw new Error("error");
var e = new Error("error");
throw e;
try {
throw new Error("error");
} catch (e) {
throw e;
}如何使用
To enable this rule using the config file or in the CLI, you can use:
json
{
"rules": {
"no-throw-literal": "error"
}
}ts
import { defineConfig } from "oxlint";
export default defineConfig({
rules: {
"no-throw-literal": "error",
},
});bash
oxlint --deny no-throw-literal版本
此规则添加于 v0.9.10。
