JavaScript中try catch用于捕获处理同步运行时错误,避免崩溃;语法含try、catch及可选finally块;无法捕获语法错误和异步错误,需配合Promise.catch或async/await使用。

JavaScript 中 try catch 主要用于捕获并处理运行时错误,避免程序崩溃,同时提升代码健壮性和用户体验。
基本语法结构
try catch 由 try 块和 catch 块组成,可选地加上 finally 块:
- try:包裹可能出错的代码
-
catch:接收错误对象(通常命名为
error或err),执行错误处理逻辑 - finally(可选):无论是否出错都会执行,常用于清理操作(如关闭连接、重置状态)
捕获常见运行时错误
try catch 只能捕获同步执行中的错误,比如引用未定义变量、调用不存在的方法、JSON 解析失败等:
- 错误示例:
JSON.parse("{bad: json}")会抛出 SyntaxError,可被 catch 捕获 - 注意:
undefinedVariable()抛出 ReferenceError,也能被捕获 - 但 语法错误(如写错关键字、少括号)在代码解析阶段就报错,无法被 try catch 捕获
处理异步代码中的错误
Promise 和 async/await 的错误不能直接用普通 try catch 包裹异步操作本身,需注意写法:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
立即学习“Java免费学习笔记(深入)”;
- Promise 链中用
.catch()或在 async 函数里用 try catch 包裹await表达式 - 错误示例:
await fetch("/api").then(res => res.json())若网络失败或 JSON 解析出错,需 await 整个链或加 .catch - 推荐写法:
try { const data = await fetch("/api").then(r => r.json()); } catch (err) { console.error(err); }
合理使用 error 对象信息
catch 接收的 error 对象包含有用字段,帮助定位问题:
-
err.message:错误提示文本(如 "Unexpected token u in JSON at position 0") -
err.name:错误类型名(如 "SyntaxError"、"TypeError") -
err.stack:堆栈跟踪,开发时很有用,生产环境慎用(含路径信息) - 可结合判断类型做差异化处理,例如:
if (err.name === "SyntaxError") { /* 处理 JSON 错误 */ }
不复杂但容易忽略细节,用对时机和写法才能真正兜住错误。

















