JavaScript 中的错误处理:Try, Catch, Finally
发布: (2026年4月4日 GMT+8 13:45)
4 分钟阅读
原文: Dev.to
Source: Dev.to
🚨 JavaScript 中的错误是什么?
错误是代码执行(运行时)期间出现的问题。
示例
console.log(x); // ❌ ReferenceError: x is not defined常见错误类型
- ReferenceError – 变量未定义
- TypeError – 类型使用错误
- SyntaxError – 代码无效
😵 没有错误处理的问题
function divide(a, b) {
return a / b;
}
console.log(divide(10, 0));
console.log("This may still run...");某些错误可能会导致应用崩溃或出现意外行为。
💡 使用 try 和 catch
try...catch 代码块让您能够安全地处理错误。
try {
let result = riskyFunction();
console.log(result);
} catch (error) {
console.log("Something went wrong:", error.message);
}📊 流程
try block runs
↓
error occurs?
↓ yes
catch block runs
↓
program continues safely📥 理解 catch 块
try {
console.log(x);
} catch (error) {
console.log(error.name); // ReferenceError
console.log(error.message); // x is not defined
}error 对象提供有用的调试信息。
🧹 finally 块
finally 块始终会执行——无论是否出现错误。
try {
console.log("Trying...");
} catch (error) {
console.log("Error occurred");
} finally {
console.log("This always runs");
}📊 执行顺序
try → catch (if error) → finally🔥 抛出自定义错误
您可以使用 throw 创建自定义错误。
function withdraw(balance, amount) {
if (amount > balance) {
throw new Error("Insufficient balance");
}
return balance - amount;
}
try {
withdraw(1000, 1500);
} catch (err) {
console.log(err.message);
}🧠 为什么使用自定义错误?
- 更好的调试
- 清晰的错误信息
- 控制程序流程
🛠️ 实际案例
function parseJSON(data) {
try {
return JSON.parse(data);
} catch (err) {
console.log("Invalid JSON");
return null;
}
}❓ 为什么错误处理很重要
- ✅ 1. 防止崩溃 – 即使出现故障,您的应用仍能继续运行。
- ✅ 2. 更佳的用户体验 – 用户看到有意义的提示,而不是破碎的页面。
- ✅ 3. 更易调试 – 您可以清晰了解出错原因。
- ✅ 4. 优雅的失败
错误示例:
// app crashes ❌正确示例:
// show error message ✅
// continue execution ✅⚠️ 重要说明
try...catch仅适用于运行时错误。- 它不会捕获语法错误。
- 同步工作(异步需要特殊处理,如
async/await)。
🧠 最佳实践
- 保持
try块简短。 - 使用有意义的错误信息。
- 不要悄悄忽略错误。
- 使用
finally进行清理(关闭资源等)。
🚀 最后思考
错误处理不是可选的——它是必需的。使用 try、catch 和 finally,您可以:
- 构建健壮的应用程序。
- 优雅地处理失败。
- 改进调试和维护。
🧠 快速总结
- 错误发生在运行时。
try→ 测试代码。catch→ 处理错误。finally→ 始终执行。throw→ 创建自定义错误。