胖子可扔到过头
说明
将任何抛出值转换为 Error。 。 。 .
在 Java 脚本中, throw 接受任何东西:字符串、数字、普通对象, null, (中文(简体) ), undefined,所以类型脚本
类型 a catch 变量为 unknown。 。 。 . throwableToError 使这个值正常化为真实的 Error所以你们剩下的人
代码(博客、错误反应、, cause 链条)可以依赖 message 财务报告和审定财务报表 name 在场.
为什么用它
- 类型安全: 转弯
unknown输入Error没有不安全as Error铸作. - 从不扔: 循环参考,投掷
toJSON编号 :toString/ 获取器和不可序列值被处理 报告为[unserializable]而不是崩溃您的错误处理器. - 锁定输出: 超过 2048 个字符的信件被切换(后缀)
...),所以一个巨大的抛出物体不能 冲出你的日志. - 使真实错误不受影响页:1
Error(或子类)与原来的堆栈一样被还原. - 小声:一个单一的函数,没有依赖关系.
所需资源
- 节点:
安装
穿过 国家预防机制 作为 @ chubbyts/ chubbyts-可推-tror。 。 。 .
npm i @chubbyts/chubbyts-throwable-to-error@^2.4.1
使用量
import { throwableToError } from '@chubbyts/chubbyts-throwable-to-error/throwable-to-error';
try {
throw { key: 'value' };
} catch (e) {
const error = throwableToError(e);
error.name; // 'object'
error.message; // '{"key":"value"}'
}
行为
| 丢入值 | name | message |
|---|---|---|
new Error('example') | 不变( 相同实例) | 不变( 相同实例) |
'example' | 'string' | 'example' |
42 | 'number' | '42' |
true | 'boolean' | 'true' |
undefined | 'undefined' | 'undefined' |
null | 'null' | 'null' |
Symbol('example') | 'symbol' | 'Symbol(example)' |
() => null | 'function' | '() => null' |
{ key: 'value' } | 'object' | '{"key":"value"}' |
['example'] | 'object' | '["example"]' |
| 圆形参考对象 | 'object' | '[unserializable]' |
- 对象(和数组)以
JSON.stringify,其他所有值为String。 。 。 . - 这个
name这是typeof丢出值 ('null'页:1null) (中文(简体) ). - 这个
stack转换错误为undefined:它只会指出throwableToError自己,不是去那个地方 投出数值的地方.
版权
2026 道米尼克·佐格(英语: