JavaScript中不同类型的错误

5 阅读2分钟

JavaScript中不同类型的错误

在 JavaScript 中,错误(Error)是程序运行时发生的异常情况。JavaScript 提供了多种内置错误类型,每种错误类型都有特定的用途。以下是常见的错误类型及其示例:

1. Error

Error 是所有错误类型的基类,通常用于自定义错误。

示例:

throw new Error("这是一个自定义错误");

2. SyntaxError

SyntaxError 表示语法错误,通常是由于代码不符合 JavaScript 语法规则。

示例:

// 缺少括号
if (true {
    console.log("Hello");
}
// 报错: SyntaxError: Unexpected token '{'

3. ReferenceError

ReferenceError 表示引用错误,通常是由于访问未定义的变量或函数。

示例:

console.log(undefinedVariable);
// 报错: ReferenceError: undefinedVariable is not defined

4. TypeError

TypeError 表示类型错误,通常是由于操作不符合预期的类型。

示例:

const num = 123;
num.toUpperCase();
// 报错: TypeError: num.toUpperCase is not a function

5. RangeError

RangeError 表示范围错误,通常是由于数值超出有效范围。

示例:

const arr = new Array(-1);
// 报错: RangeError: Invalid array length

6. URIError

URIError 表示 URI 处理错误,通常是由于 encodeURIdecodeURI 等函数使用不当。

示例:

decodeURI("%");
// 报错: URIError: URI malformed

7. EvalError

EvalError 表示 eval 函数使用错误。在现代 JavaScript 中,此错误已很少见。

示例:

throw new EvalError("eval 函数使用错误");

8. AggregateError

AggregateError 表示多个错误的集合,通常与 Promise.anyPromise.allSettled 一起使用。

示例:

Promise.any([
    Promise.reject(new Error("错误 1")),
    Promise.reject(new Error("错误 2"))
]).catch(error => {
    console.log(error instanceof AggregateError); // true
});

9. 自定义错误

可以通过继承 Error 类创建自定义错误类型。

示例:

class CustomError extends Error {
    constructor(message) {
        super(message);
        this.name = "CustomError";
    }
}

throw new CustomError("这是一个自定义错误");

10. 错误处理

使用 try...catch 语句捕获和处理错误。

示例:

try {
    throw new TypeError("类型错误");
} catch (error) {
    if (error instanceof TypeError) {
        console.log("捕获到 TypeError:", error.message);
    } else {
        console.log("捕获到其他错误:", error.message);
    }
}

总结

错误类型描述示例
Error通用错误new Error("自定义错误")
SyntaxError语法错误if (true {
ReferenceError引用错误console.log(undefinedVar)
TypeError类型错误123.toUpperCase()
RangeError范围错误new Array(-1)
URIErrorURI 处理错误decodeURI("%")
EvalErroreval 函数错误throw new EvalError()
AggregateError多个错误的集合Promise.any([...])
自定义错误继承Error 的自定义错误class CustomError extends Error

理解这些错误类型及其用途,有助于更好地调试和处理 JavaScript 程序中的异常情况。

更多vue相关插件及后台管理模板可访问vue admin reference,代码详情请访问github