捕获到的 error 对象最常使用 name、message 和 stack 三个核心属性:name 表示错误类型(如 "TypeError"),用于类型判断;message 提供可读错误描述,适合日志和用户提示;stack 给出调用堆栈,是调试关键依据。

捕获到的 error 对象最常被用到的是三个核心属性:name、message 和 stack。
name 属性
表示错误的类型名称,比如 "TypeError"、"ReferenceError"、"SyntaxError" 或 "Error"。它不带任何修饰,是纯字符串,适合做类型判断:
- 可用于
if (error.name === 'TypeError') - 也可配合
instanceof更准确识别(如error instanceof TypeError)
message 属性
存放人类可读的错误描述,通常是引擎自动生成的提示,例如:
-
"Cannot read property 'x' of undefined" -
"undefinedVariable is not defined"
这个字段内容因浏览器和错误场景略有差异,不宜直接用于逻辑分支,但非常适合展示给用户或写入日志。
stack 属性
提供错误发生时的函数调用链(堆栈跟踪),格式类似:
TypeError: Failed to fetch
at fetchData (script.js:12:15)
at init (main.js:5:3)虽然不是 ECMAScript 标准强制要求,但所有主流浏览器(Chrome、Firefox、Safari 除外部分旧版本)都支持。它是调试定位问题的关键依据。
其他可能存在的属性(非通用,谨慎依赖):
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
fileName/lineNumber/columnNumber:仅部分环境(如某些浏览器或 Node.js)提供,不跨平台 -
cause:ES2022 新增,用于链式错误(如throw new Error('outer', { cause: innerErr })),较新环境才支持
实际开发中,优先使用 name + message 做基础分类与提示,靠 stack 定位问题,其余属性按需兼容处理即可。
立即学习“Java免费学习笔记(深入)”;

















