JavaScript 常见错误类型与处理机制详解

作者:代码拾荒

时间:2026-10-24

浏览:614

本文详细解析JavaScript中五种常见错误类型,包括ReferenceError、TypeError、RangeError、SyntaxError及通用Error,并通过具体代码示例说明其触发场景。同时介绍使用try...catch语句捕获异常及throw语句抛出错误的标准处理流程,帮助开发者快速定位并解决编码中的运行时问题。

文章目录

JavaScript常见错误类型

在JavaScript开发中,理解错误的分类是调试的基础。

Error是所有错误的父类型,其他具体错误均继承自它。

常见的错误子类型主要包括以下几类:

  • ReferenceError:当引用不存在的变量时抛出。
  • TypeError:当数据类型不正确或操作不被支持时抛出。
  • RangeError:当数值超出允许范围时抛出。
  • SyntaxError:代码语法结构错误时抛出。

以下针对常见内置错误进行具体分类说明:

首先是ReferenceError,通常发生在引用未声明或不可见的变量时。

console.log(a) //ReferenceError: a is not defined

例如尝试访问一个未定义的变量a,控制台会报错:

其次是TypeError,通常涉及对错误类型的数据执行操作。

例如对一个对象调用不存在的方法:


function fn(){
  fn()
}
fn() //RangeError: Maximum call stack size exceeded

接着是RangeError,当数值超出其允许的范围时抛出。

const c = """" //SyntaxError: Unexpected string

错误处理机制

例如递归调用未设置终止条件,导致调用栈溢出:

最后是SyntaxError,即代码书写不符合语法规范。

例如字符串引号不匹配:

除了识别错误,掌握错误的处理机制同样重要。


try {
  let d
  console.log(d.xxx)
} catch (error) { //可以通过调试查看error对象的属性(message属性: 错误相关信息;stack属性: 函数调用栈记录信息)
 console.log(error.message)
 //console.log(error.stack)
}
// 可以继续向下执行
console.log('出错之后')

JavaScript提供了try...catch语句用于捕获运行时错误。


function something() {
  if (Date.now() % 2 === 1 ){
  console.log('当前时间为奇数,可执行任务')
  } else {
  throw new Error('当前时间为偶数无法执行任务')
  }
}

//情况1 直接调用
something() //Error: 当前时间为偶数无法执行任务
console.log('something之后') //不会继续这句代码(没有对异常进行处理)

//情况2 捕获处理异常
try {
 something()
} catch(error) {
 console.log(error.message)
}

此外,开发者可以使用throw语句手动抛出错误对象。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章