try catch 仅能捕获同步运行时错误,如 throw、ReferenceError、TypeError、JSON.parse 失败等;无法捕获异步错误、语法错误、未处理 Promise rejection 和全局资源错误,需配合 unhandledrejection、error 事件及 async/await catch 等机制完善错误处理。

try catch 主要捕获同步执行中抛出的异常,无法捕获异步错误、语法错误、Promise 拒绝(未处理的 rejection)和全局错误(如未捕获的 promise rejection 或 script error)。 完善 JavaScript 错误处理不能只靠 try catch,需分场景组合使用多种机制。
哪些异常能被 try catch 捕获
仅限当前执行栈中同步抛出的运行时错误,例如:
throw new Error('xxx')- 引用未声明变量(
ReferenceError) - 调用非函数值(
TypeError) - 数组越界访问(部分情况,如
arr[0].toString()中 arr 为 null) - JSON.parse 解析失败(
SyntaxError)
注意:语法错误(如缺少括号、错写 const)在代码加载/解析阶段就报错,根本不会进入 try catch 执行流程,因此无法捕获。
哪些异常 try catch 捕获不到
以下常见错误类型不会进入 catch 块:
标签: javascript java js 前端 json 处理器 工具 栈 ai win 事件捕获
还木有评论哦,快来抢沙发吧~