在鸿蒙中BusinessError 继承于Error,而在JavaScript(以及TypeScript,因为它是JavaScript的超集)中,
Error
对象包含一些不能被JSON.stringify
直接序列化的属性。JSON.stringify
方法会将一个JavaScript对象或者值转换为一个JSON字符串,但是它只接受能够被序列化为有效JSON格式的属性。
Error
对象通常包含一些非枚举属性(如stack
和message
),其中stack
属性是一个包含调用堆栈信息的字符串,而message
属性则包含关于错误的简短描述。尽管这些属性看起来应该可以被序列化,但JSON.stringify
默认行为并不会处理这些非枚举属性。然而,实际上
message
属性通常是可以被JSON.stringify
捕获的,因为它是可枚举的。但是,stack
属性可能因JavaScript引擎的实现而异,并且可能不是所有环境下都是可枚举的。此外,
Error
对象可能还包含其他非枚举或不可序列化的属性,比如函数、循环引用或者undefined
值等,这些都不能被JSON.stringify
直接处理。Debug 代码发现 Error 对象包含了 一个 function 以及一个 可能无法序列化的 stack
HarmonyOS — BusinessError 不能被 JSON.stringify转换
于 2024-03-19 10:25:27 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)