登录
首页 >  文章 >  前端

JS错误处理技巧:trycatch使用教程

时间:2026-01-14 19:10:32 182浏览 收藏

从现在开始,努力学习吧!本文《JS错误处理技巧:try catch实用教程》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

JavaScript错误处理核心是try...catch语句,用于捕获并处理异常而不中断程序;支持按错误类型(SyntaxError、ReferenceError、TypeError)分别处理,finally确保清理操作执行,throw可主动抛出内置或自定义错误。

javascript错误如何处理_如何使用try catch语句

JavaScript 错误处理的核心是 try...catch 语句,它能让你在代码出错时不中断整个程序,而是捕获错误、记录信息或执行备用逻辑。

try catch 的基本结构

try 块中放可能出错的代码,catch 块接收并处理抛出的错误。如果 try 中没有异常,catch 就不会执行。

基本写法:

try {
  // 可能出错的代码,比如访问 undefined 属性、JSON.parse 无效字符串
  JSON.parse('{ "name": "Alice"'); // 缺少右括号 → SyntaxError
} catch (error) {
  console.error('解析失败:', error.message);
  // 可以在这里做降级处理,比如显示默认数据
}

捕获特定错误类型

不是所有错误都该一视同仁。你可以通过判断 error.constructor.nameerror instanceof 区分错误类型,再分别处理:

  • SyntaxError:常出现在 JSON.parseeval 或动态代码执行时
  • ReferenceError:访问未声明变量(如 console.log(notExist)
  • TypeError:调用非函数、读取 null/undefined 属性等

示例:

try {
  doSomething();
} catch (error) {
  if (error instanceof TypeError) {
    console.warn('类型错误,跳过操作');
  } else if (error instanceof SyntaxError) {
    console.error('数据格式异常,请检查输入');
  } else {
    console.error('未知错误:', error);
  }
}

finally:无论成功与否都要执行

加上 finally 块,适合做清理工作,比如关闭加载状态、释放资源:

let loading = true;
try {
  await fetch('/api/data');
} catch (error) {
  console.error(error);
} finally {
  loading = false; // 确保 loading 总会关闭
}

主动抛出错误与自定义错误

throw 主动抛出错误,配合 try catch 实现业务校验:

  • 抛出字符串:throw '用户名不能为空'(简单但不推荐)
  • 抛出 Error 实例:throw new Error('用户名不能为空')(保留堆栈,更规范)
  • 自定义错误类(适合复杂项目):
class ValidationError extends Error {
  constructor(field, message) {
    super(`${field}: ${message}`);
    this.name = 'ValidationError';
  }
}
// 使用
try {
  if (!username) throw new ValidationError('username', '必填项');
} catch (error) {
  if (error instanceof ValidationError) {
    showErrorMessage(error.message);
  }
}

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《JS错误处理技巧:trycatch使用教程》文章吧,也可关注golang学习网公众号了解相关技术文章。

前往漫画官网入口并下载 ➜
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>