当代码在 JavaScript 运行时发生错误时,会抛出不同的错误类型。下面我将详细解释每种错误,并提供一些示例来说明。
-
Error错误:- 该错误是所有内置错误类型的基类,也可作为通用的错误类型使用。
- 这个错误通常由开发人员自定义,用于表示特定的错误情况。
- 示例:
throw new Error("自定义错误信息");
-
TypeError错误:- 当变量或参数的类型不符合预期时抛出的错误。
- 示例:
const num = "abc"; console.log(num.toFixed(2)); // 抛出 TypeError: num.toFixed is not a function
-
SyntaxError错误:- 当发生语法错误时抛出的错误。
- 示例:
const x = 10; if (x > 5) { console.log("x is greater than 5"); else { console.log("x is not greater than 5"); // 抛出 SyntaxError: Unexpected token 'else' }
-
ReferenceError错误:- 当引用一个不存在的变量或函数时抛出的错误。
- 示例:
console.log(foo); // 抛出 ReferenceError: foo is not defined function myFunction() { console.log("Hello, world!"); } myFunction(); // 正常运行 myFunction; // 抛出 ReferenceError: myFunction is not defined
-
RangeError错误:- 当一个值超出有效范围时抛出的错误。
- 示例:
const arr = new Array(-1); // 抛出 RangeError: Invalid array length function recursiveFunc() { recursiveFunc(); } recursiveFunc(); // 抛出 RangeError: Maximum call stack size exceeded
-
URIError错误:- 当使用全局函数
decodeURI()或decodeURIComponent()处理无效的 URI 时抛出的错误。 - 示例:
decodeURI('%'); // 抛出 URIError: URI malformed
- 当使用全局函数
-
DOMException错误:- 在与 DOM(文档对象模型)相关的操作中抛出的错误。
- 示例:
const element = document.getElementById("nonexistent"); element.innerHTML = "Hello, world!"; // 抛出 DOMException: Failed to execute 'getElementById' on 'Document': The provided element ID is not valid.
这些错误类型只是 JavaScript 中的一部分。根据不同的 JavaScript 引擎和运行环境,可能还存在其他特定的错误类型。在编写代码时,确保使用适当的错误处理机制来捕获和处理可能出现的错误。
希望这些示例能够帮助您更好地理解各种错误类型!如果您对某个错误类型或其他问题有进一步的疑问,请随时提问。