eslint/no-throw-literal 学究式
其作用
不允许将字面量或非 Error 对象作为异常抛出。
为什么这不好?
通常而言,只抛出 Error 对象本身或使用 Error 对象作为用户定义异常的基础对象的某个对象是比较好的做法。Error 对象的根本优势是它们可自动记录它们建构和源自何处。
示例
此规则中不正确代码的示例
js
throw "error";
throw 0;
throw undefined;
throw null;
var err = new Error();
throw "an " + err;
// err is recast to a string literal
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;
}