javascript怎样进行错误处理_trycatch和Promise错误如何捕获

admin 百科 16
JavaScript错误处理分同步和异步两类:同步错误用try...catch捕获,异步错误需用.catch()、async/await+try...catch或全局unhandledrejection/error事件处理,关键在于捕获位置准确。

javascript怎样进行错误处理_trycatch和Promise错误如何捕获-第1张图片-佛山资讯网

JavaScript 错误处理主要分同步和异步两类:同步错误用 try...catch 捕获,异步错误(尤其是 Promise)需结合 .catch()async/await + try...catch 或全局钩子来处理。关键不是“能不能捕”,而是“在哪儿捕”——位置错了,错误就漏掉了。

同步错误:用 try...catch 直接包裹可能出错的代码

try...catch 只能捕获**同步执行过程中抛出的错误**(比如 throw new Error()、类型错误、引用错误等),不能捕获异步回调里的错误(如 setTimeout 里抛错)。

  • 把可能报错的语句放在 try 块中,比如 JSON 解析、对象属性访问、函数调用
  • catch 参数是错误对象,可访问 messagenamestack 等属性
  • 可选 finally 块,无论是否出错都会执行,适合清理资源

示例:

try {
  const data = JSON.parse('{"name": "Alice",'); // 缺少 }
} catch (err) {
  console.error('JSON 解析失败:', err.message); // SyntaxError: Unexpected end of JSON input
}

登录后复制

Promise 错误:用 .catch() 或 await + try...catch

Promise 链中的错误不会冒泡到外层 try...catch,必须显式处理。两种主流方式:

立即学习“Java免费学习笔记(深入)”;

  • 链式 .catch():接在 .then() 后,捕获前面任意环节的 reject 或 throw
  • async/await + try...catch:让异步代码写得像同步,错误可被直接捕获

注意:未被 .catch()try...catch 处理的 Promise rejection 会触发 unhandledrejection 事件(可在全局监听)。

标签: javascript java js json ai win 作用域

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~