在 JavaScript 中,try-catch 语句用于捕获和处理代码块中可能抛出的异常(错误)。以下是一些常见的错误类:

86 阅读2分钟

当代码在 JavaScript 运行时发生错误时,会抛出不同的错误类型。下面我将详细解释每种错误,并提供一些示例来说明。

  1. Error 错误:

    • 该错误是所有内置错误类型的基类,也可作为通用的错误类型使用。
    • 这个错误通常由开发人员自定义,用于表示特定的错误情况。
    • 示例:
      throw new Error("自定义错误信息");
      
  2. TypeError 错误:

    • 当变量或参数的类型不符合预期时抛出的错误。
    • 示例:
      const num = "abc";
      console.log(num.toFixed(2)); // 抛出 TypeError: num.toFixed is not a function
      
  3. 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'
      }
      
  4. ReferenceError 错误:

    • 当引用一个不存在的变量或函数时抛出的错误。
    • 示例:
      console.log(foo); // 抛出 ReferenceError: foo is not defined
      
      function myFunction() {
        console.log("Hello, world!");
      }
      
      myFunction(); // 正常运行
      
      myFunction; // 抛出 ReferenceError: myFunction is not defined
      
  5. RangeError 错误:

    • 当一个值超出有效范围时抛出的错误。
    • 示例:
      const arr = new Array(-1); // 抛出 RangeError: Invalid array length
      
      function recursiveFunc() {
        recursiveFunc();
      }
      
      recursiveFunc(); // 抛出 RangeError: Maximum call stack size exceeded
      
  6. URIError 错误:

    • 当使用全局函数 decodeURI()decodeURIComponent() 处理无效的 URI 时抛出的错误。
    • 示例:
      decodeURI('%'); // 抛出 URIError: URI malformed
      
  7. 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 引擎和运行环境,可能还存在其他特定的错误类型。在编写代码时,确保使用适当的错误处理机制来捕获和处理可能出现的错误。

希望这些示例能够帮助您更好地理解各种错误类型!如果您对某个错误类型或其他问题有进一步的疑问,请随时提问。