try catch使用场景 处理同步代码错误兼容用的

情景

假设有一个方法顺序同步执行从上倒下,其中某个关键部分报错

正常会中断错误不再执行后续

正常方式下没问题,如果要继续错误后不影响后续的处理就需要这个了

作用

相当于提供一个冗余项不让功能崩溃,try类似安全"气泡"正常时候包裹js顺序执行,出错时则走catch后继续走之后js

注意 不要try中写异步

try中不能写异步也就是发起后不再和评级的js等待执行完才执行那种,就是各执行各的

javascript 复制代码
try {
  setTimeout(() => {
    throw new Error('异步报错') // 这个报错会直接崩掉,catch 抓不到!
  }, 0)
} catch (e) {
  console.log('捕获失败') // 这里不会执行
}
// 后续代码会被阻断
console.log('这行不会执行')

如果想要抓捕到错误得用上async await,这个只是语法糖即可规定js识别这两个标识后就干什么,如果某天任意人牛逼时也可以自定义 牛逼两个字,让某语言识别后自动最高级运行等,牛逼这里就是语法糖,只需要知道作用就行

举例(错误写法,抓不到):

javascript 复制代码
try {
  setTimeout(() => {
    throw new Error('异步报错') // 这个报错会直接崩掉,catch 抓不到!
  }, 0)
} catch (e) {
  console.log('捕获失败') // 这里不会执行
}
// 后续代码会被阻断
console.log('这行不会执行')

正确写法(配合 async/await):

javascript 复制代码
try {
  await new Promise((resolve, reject) => {
    setTimeout(() => reject('异步报错'), 0)
  })
} catch (e) {
  console.log('捕获成功', e) // 这里可以抓住
}
// 后续代码正常执行
console.log('这行会执行')

一般也就是常看到try和catch成对出现,有时还看到async await原因 后者也可以单独去实现等待不按顺序执行的结果获取后才给下一位 也就是常规默认js的同步执行

相关推荐
Hilaku2 小时前
AI 流式输出都用 SSE,什么时候必须换 WebSocket?
前端·javascript·程序员
奇牙coding2 小时前
Codex CLI 升级后多文件编辑静默失效:config.yaml 枚举变更排查与修复指南
java·前端·javascript·ai
不简说2 小时前
AI 帮你画模板、点一下就云打印:sv-print 这三个月都干了啥
前端·javascript·人工智能
大明二代3 小时前
从零构建 Mastra RAG MVP:DeepSeek、SiliconFlow 与 PostgreSQL/pgvector 实战
javascript·数据库·人工智能
结局无敌3 小时前
React Native for OpenHarmony 实战:三方库 react-native-paper 的鸿蒙化适配指南
javascript·人工智能·深度学习·react native·react.js·ecmascript·harmonyos
铁皮饭盒3 小时前
CPU就行, 老照片变清晰, 本地部署582mb腾讯的模型, 本地部署, 过节了给长辈们变个小魔术
前端·javascript·后端
结局无敌4 小时前
React Native for OpenHarmony 实战:三方库 react-native-progress-steps 的鸿蒙化适配指南
javascript·人工智能·深度学习·react native·react.js·harmonyos
tryCbest4 小时前
第三篇:JavaScript 基础语法全解 + TaskFlow 逻辑实现
javascript·前端知识
after you4 小时前
【无标题】
前端·javascript
酷炫码神4 小时前
Day 6|ES6+ 语法:把现代 JS 写顺手,从解构到 map / filter / reduce
前端·javascript·es6