![]() |
1
183
更新你的代码,将你的原型分配给Error.prototype,instanceof和asserts都可以工作。
但是,我只会抛出你自己的对象,并检查name属性。
根据评论进行编辑
在查看评论并试图记住我为什么要将原型分配给
控制台输出如下。
这证实了我遇到的“问题”是错误的堆栈属性是行号,其中
此外,请注意
|
![]() |
2
85
在ES2015中,您可以使用
这不会修改全局
当然,您可能需要使用以下工具
|
![]() |
3
20
以上所有的答案都非常糟糕——真的。即使是有107个上升点的那个!真正的答案在这里,伙计们: Inheriting from the Error object - where is the message property? 太长,读不下去了
A.原因
|
![]() |
4
14
如果有人想知道如何创建自定义错误 和 获取堆栈跟踪:
|
![]() |
5
7
和
它只是一个类表示 this 回答。 输出
|
![]() |
6
6
本节标准可以解释为什么
在这种情况下
使用以下代码进行测试似乎证明了这实际上是正在发生的事情:
运行此命令时会生成以下输出:
|
![]() |
7
6
我喜欢这样做:
|
![]() |
8
4
|
![]() |
9
2
Accoring to Joyent 你不应该弄乱stack属性(我在这里给出的很多答案中都看到了),因为它会对性能产生负面影响。他们是这么说的:
their idea of wrapping the original error 这是传递堆栈的一个很好的替代品。 考虑到上述情况,以下是我创建自定义错误的方法: es5版本:
es6版本:
我已经将我的解决方案放入了一个模块中,如下所示: https://www.npmjs.com/package/rerror |
![]() |
10
2
我也有类似的问题。我的错误必须是
我的解决方案:
使用node.js运行的结果:
该错误符合我的所有3个标准,尽管
|
![]() |
11
1
我使用构造函数模式创建了新的错误对象。我定义了
原型链
例如a
您可以在此处查看此代码段 gist . 实施
用法CustomError构造函数可以接收许多参数来构建消息,例如。
这就是自定义错误的外观:
|
![]() |
12
1
这是我的实现:
示例用法#1:
示例用法#2:
|
![]() |
13
1
我只需要实现这样的东西,就发现堆栈在我自己的错误实现中丢失了。我所要做的就是创建一个虚拟错误并从中检索堆栈:
|
![]() |
14
0
|
![]() |
15
0
虽然我不知道你为什么要这么做。为什么不直接使用
|
![]() |
16
0
以无法使用为代价
|
![]() |
17
0
另一种选择可能不适用于所有环境。至少可以保证它在nodejs 0.8中工作 这种方法使用了一种非标准的方式来修改内部原型道具
|
![]() |
18
-1
如果你正在使用Node/Chrome。以下代码片段将为您提供满足以下要求的扩展。
片段
用法
输出
|
![]() |
19
-3
以下内容摘自Mozilla官方文档,对我有效 Error .
|
![]() |
20
-3
这是我支持es2015之前浏览器的解决方案。它不做任何花哨的原型调整,也不会破坏调试器。
|
![]() |
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 7 月前 |
![]() |
Alex · 在轻量级中同时解构和不解构变量 7 月前 |
![]() |
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 7 月前 |
![]() |
bairog · 从按属性筛选的对象数组字典中创建值数组 8 月前 |
![]() |
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 8 月前 |